数据 API 生成器版本 1.2(2024 年 8 月)中的新增功能

有关数据 API 生成器 (DAB) 版本 1.2 中的更新和增强功能的发行说明和信息。
版本 1.2.10:Azure 数据库的数据 API 生成器

重要

此更新是我们自 5 月正式发布(正式版)以来的第一个重大版本。

简介:最大页面大小

数据 API 生成器 会自动 对 REST 和 GraphQL 终结点中的查询结果进行分页。 分页可确保针对大型表的查询返回可管理的结果,并保护数据库和 DAB 免受太大响应的侵害。

默认情况下,DAB 使用的页面大小为 100 条记录,可通过 default-page-size 设置进行配置。 用户可以使用关键字请求更多记录$first,绕过默认值。

为了防止滥用并帮助维护终结点性能,DAB 现在支持 max-page-size 设置,该设置限制用户可以请求的最大记录数。 此选项可让开发人员控制和灵活性,同时添加重要的安全措施。

{
  "runtime": {
    "pagination": {
      "max-page-size": 1000,
      "default-page-size": 100
    }
  }
}

简介:最大响应大小

大型结果集可能会使 DAB 和数据库不堪重负。 版本 1.2 引入了 max-response-size-mb限制响应大小(以 MB 为单位)的设置。 此上限适用于实际有效负载,而不是行计数,这一点很重要,因为宽列(文本、二进制、XML、JSON)每个值最多可以容纳 2 GB。

此设置通过对输出大小强制实施上限来确保性能和系统可靠性,同时保持各种数据类型的灵活性。

{
  "runtime": {
    "host": {
      "max-response-size-mb": 158
    }
  }
}

简介:GraphQL 查询深度限制

GraphQL 通过关系支持深度嵌套查询,这简化了复杂的数据检索。 但是,深度嵌套会增加查询复杂性,并可能会降低性能。

graphql/depth-limit 设置限制最大查询深度,在功能和可靠性之间取得平衡。

{
  "runtime": {
    "graphql": {
      "depth-limit": 2
    }
  }
}

其他改进

  • OpenAPI 增强功能:通过在生成的 OpenAPI 文档中包括更多元数据,改进了基础结构 AppBuilder 等工具的 OpenAPI 兼容性。
    详细信息

  • Postgres 遥测支持:现在 application_name 已为 Postgres 连接设置,就像以前为 SQL Server 所做的那样。
    详细信息

  • 重试策略调整:默认重试计数从 5 减少到 3,以遵循Microsoft Learn 最佳做法。
    详细信息

  • 文化不变数据转换:数据转换现在使用 CultureInfo.InvariantCulture 避免在处理浮点值时出现基于区域设置的不一致。
    详细信息

  • 架构验证期间的环境变量解析:配置中使用的环境变量(例如,连接字符串)在架构验证之前已正确解析。
    详细信息