Новые возможности построителя API данных версии 1.1
Заметки о выпуске и сведения об обновлениях и улучшениях построителя API данных (DAB) версии 1.1.
Важно!
Это первый общедоступный выпуск в конструкторе API данных (DAB).
Заметки о выпуске GitHub
Полный список всех изменений и улучшений см. на этих страницах выпуска:
Ссылка | |
---|---|
14.05.2024 — версия 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).
Например, версия 0.12.0
образа контейнера OSS по умолчанию вернет это сообщение о состоянии:
{
"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 для NoSQL
В DAB реализовано несколько улучшений существующей поддержки Azure Cosmos DB для NoSQL.
Поддержка операций исправления
Операции исправлений Azure Cosmos DB теперь поддерживаются с помощью patch<entity-name>
изменения.
Например, предположим, что существует небольшой контейнер с различными элементами авторов, секционированных по .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 для NoSQL. Выражение политики базы данных вычисляется, чтобы определить, к каким элементам может обращаться текущая роль.
Например, это определение роли определяет новую роль с именем scoped-reader
, которая может считывать только элементы, в ownerId
которых эквивалентно существующему UserId
из объекта поставщика @claims
удостоверений.
{
"<entity-name>": {
"permissions": [
{
"role": "scoped-reader",
"actions": [
{
"action": "read",
"policy": {
"database": "@item.ownerId eq @claims.UserId"
}
}
]
}
]
}
}
Дополнительные сведения см. в статье Azure/data-api-builder — поддержка проверки подлинности на уровне элементов с помощью политики базы данных.
Поддержка кэша в памяти
Обновления существующего обработчика запросов Azure Cosmos DB для NoSQL для использования кэша в памяти Azure Cosmos DB.
Дополнительные сведения см. в статье Azure/data-api-builder — поддержка кэша в памяти.
Усовершенствования PostgreSQL
В DAB реализована поддержка PostgreSQL.
Объединение имени приложения в строка подключения
ТЕПЕРЬ DAB дополняет строка подключения PostgreSQL именем приложения DAB. Средство проверяет, существует ли имя приложения в строка подключения, и одно из следующих действий:
- Добавляет новое имя приложения DAB, если оно не существует или
- Добавляет имя приложения DAB после существующего имени приложения с
,
разделителем.
Дополнительные сведения см. в статье Azure/data-api-builder — добавление имени приложения для подключений PostgreSQL.