数据 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
项等效的@claims
项ownerId
。
{
"<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 连接添加应用程序名称。