有关数据 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
配置属性,用于调整内置分页支持的各种特征。 子属性包括:
默认值 | DESCRIPTION | |
---|---|---|
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 中的多个数据库支持。
用于 NoSQL 的 Azure Cosmos DB 增强功能
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
的新角色,该角色只能读取项目,其中 ownerId
与标识提供者的 @claims
对象中的现有 UserId
等效。
{
"<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 连接添加应用程序名称。