Поделиться через


Новые возможности построителя 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.