数据 API 生成器版本 1.1 中的新增功能

数据 API 生成器 (DAB) 版本 1.1 中的更新和增强功能的发行说明和信息。

重要

这是数据 API 生成器 (DAB) 的第一个正式发布 (正式版) 版本。

GitHub 发行说明

查看这些发布页面,获取所有更改和改进的完整列表:

链接
2024-05-14 - 版本 1.1.7 https://github.com/azure/data-api-builder/releases/tag/v1.1.7

.NET 8 支持

DAB 现在使用多目标支持 .NET 6 和 .NET 8 长期支持, (LTS) 版本。

有关详细信息,请参阅 azure/data-api-builder - .NET 多框架目标

GraphQL多个突变支持

DAB 现在支持将多个突变操作组合成单个GraphQL事务。 当前支持的范围 create 仅限于操作。

例如,假设我们有 Book 相关的 和 Chapter 实体。 使用多个突变,可以创建主书籍实体和所有相关章节实体作为单个操作。

mutation {
  createBook(
    item: {
      title: "Data API builder deep-dive"
      chapters: [
        { name: "Multiple mutations" }
        { name: "Relationships" }
      ]
    }
  ) {
    title
    chapters {
      items {
        name
      }
    }
  }
}

此功能在 多重突变指南中进行了深入阐述。

有关详细信息,请参阅 azure/data-api-builder - GraphQL中的多个突变

分页增强功能

DAB 现在具有一个 paginationOptions 配置属性,用于调整内置分页支持的各种特征。 子属性包括:

默认值 说明
default-page-size 100 如果在未指定页面大小的情况下发出请求,则为页面大小。
max-page-size 100,000 如果请求是针对 -1 页面大小指定的,则为页面大小。

有关详细信息,请参阅 azure/data-api-builder - 添加分页限制

运行状况

在早期版本的 DAB 中,API 会在根 (/) 终结点返回字符串状态消息healthy。 现在,该工具返回一个 JSON 对象,其中包含 状态版本应用程序名称 ,指示是托管 DAB 还是开源软件 (OSS) 版本。

例如,默认情况下,OSS 容器映像的版本 0.12.0 将返回此状态消息:

{
    "status": "Healthy",
    "version": "0.12.0",
    "app-name": "dab_oss_0.12.0"
}

有关详细信息,请参阅 azure/data-api-builder - 改进的运行状况终结点元数据

REST 多数据库支持

在 REST API 中,现在支持多个数据库 (或数据源) 。 数据库名称基于每个实体确定。

有关详细信息,请参阅 azure/data-api-builder - REST 中的多数据库支持

Azure Cosmos DB for NoSQL 增强功能

对 DAB 中的现有 Azure Cosmos DB for NoSQL 支持进行了一些增强。

修补操作支持

现在,使用 patch<entity-name> 突变支持 Azure Cosmos DB 修补操作。

例如,假设有一个小容器,其中包含按 publisher分区的各种作者项。 现在假定容器具有此项和架构:

{
  "id": "04511cbc-459d-4e39-b957-363f26771fc0",
  "firstName": "Jacob",
  "lastName": "Hancock",
  "publisher": "Contoso Books"
}
type Author @model {
  id: ID!
  firstName: String!
  middleName: String
  lastName: String!
  publisher: String!
}

若要使用 GraphQL 进行修补,请使用patchAuthor同时指定唯一标识符和分区键的突变:

mutation {
  patchAuthor(
    item: { 
      middleName: "A." 
    }
    id: "04511cbc-459d-4e39-b957-363f26771fc0"
    _partitionKeyValue: "Contoso Books"
  ) {
    middleName
  }
}

有关详细信息,请参阅 azure/data-api-builder - 修补程序支持

项目级安全性

Azure Cosmos DB for NoSQL 现在支持项级安全 (数据库策略) 。 计算数据库策略表达式以确定当前角色可以访问的项。

例如,此角色定义将定义一个名为 scoped-reader 的新角色,该角色只能从标识提供者的 对象读取与现有 UserId 项等效的@claimsownerId

{
  "<entity-name>": {
    "permissions": [
      {
        "role": "scoped-reader",
        "actions": [
          {
            "action": "read",
            "policy": {
              "database": "@item.ownerId eq @claims.UserId"
            }
          }
        ]
      }
    ]
  }
}

有关详细信息,请参阅 azure/data-api-builder - 使用数据库策略的项级身份验证支持

内存中缓存支持

汇报现有的 Azure Cosmos DB for NoSQL 查询引擎来使用 Azure Cosmos DB 的内存中缓存。

有关详细信息,请参阅 azure/data-api-builder - 内存中缓存支持

PostgreSQL 增强功能

DAB 中的现有 PostgreSQL 支持已增强。

将应用程序名称连接到连接字符串

DAB 现在使用 DAB 应用程序名称补充 PostgreSQL 连接字符串。 该工具检查连接字符串中是否已存在应用程序名称,并检查以下任一情况:

  • 添加新的 DAB 应用程序名称(如果不存在)或
  • 将 DAB 应用程序名称添加到带分隔符的现有应用程序名称 , 之后。

有关详细信息,请参阅 azure/data-api-builder - 为 PostgreSQL 连接添加应用程序名称