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


Справочник по схеме конфигурации построителя данных

Построителю данных требуется по крайней мере один файл конфигурации. Этот файл на основе JSON определяет настройку API, от параметров среды до определений сущностей. Он начинается со $schema свойства, которое включает проверку схемы для остальной части файла.

Top-level properties

Property Description
$schema URI схемы JSON для этой конфигурации.
data-source Объект, содержащий параметры подключения к базе данных.
data-source-files Массив других путей к файлу конфигурации.
runtime Объект, настраивающий поведение среды выполнения.
entities Объект, определяющий все сущности, предоставляемые с помощью REST или GraphQL.

Data-source properties

Property Description
data-source Объект, содержащий параметры подключения к базе данных.
data-source.database-type Тип базы данных, используемый в серверной части (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Строка подключения для выбранного типа базы данных.
data-source.options Параметры для конкретной базы данных и дополнительные параметры.
data-source.health Конфигурация проверки работоспособности источника данных.
data-source-files Массив других путей к файлу конфигурации.

Runtime properties

Property Description
runtime Объект, настраивающий поведение среды выполнения.
runtime.pagination Параметры разбиения на страницы для ответов API.
runtime.rest Глобальная конфигурация REST API.
runtime.graphql Глобальная конфигурация API GraphQL.
runtime.cache Конфигурация кэширования глобальных ответов.
runtime.telemetry Конфигурация телеметрии, ведения журнала и мониторинга.
runtime.health Конфигурация глобальной проверки работоспособности.

Entities properties

Property Description
entities Объект, определяющий все сущности, предоставляемые с помощью REST или GraphQL.
entities.entity-name.source Сведения об источнике базы данных для сущности.
entities.entity-name.rest Конфигурация REST API для сущности.
entities.entity-name.graphql Конфигурация API GraphQL для сущности.
entities.entity-name.permissions Разрешения и управление доступом для сущности.
entities.entity-name.relationships Связи с другими сущностями.
entities.entity-name.cache Конфигурация кэширования на уровне сущности.
entities.entity-name.health Конфигурация проверки работоспособности на уровне сущностей.

Schema

Parent Property Type Required Default
$root $schema string ✔️ Yes None

Each configuration file begins with a $schema property, specifying the JSON schema for validation.

Format

{
  "$schema": <string>
}

Example

{
  "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json"
}

Tip

Последняя схема всегда доступна по https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.jsonадресу.

Versioning

Файлы схемы доступны по определенным URL-адресам, гарантируя, что вы можете использовать правильную версию или последнюю доступную схему.

https://github.com/Azure/data-api-builder/releases/download/<VERSION>-<suffix>/dab.draft.schema.json

Замените VERSION-suffix нужной версией.

https://github.com/Azure/data-api-builder/releases/download/v0.3.7-alpha/dab.draft.schema.json

Файлы источника данных

Parent Property Type Required Default
$root data-source-files string array ❌ Нет None

Построитель данных поддерживает несколько файлов конфигурации, а один — в качестве параметров управления файлами runtime верхнего уровня. Все конфигурации используют одну и ту же схему JSON, разрешая runtime параметры в любом или каждом файле без ошибок. Разделение сущностей для лучшей организации.

Схема нескольких файлов конфигурации, на которые ссылается массив в одном файле конфигурации.

Format

{
  "data-source-files": [ "<string>" ]
}

Несколько правил конфигурации

  • Каждый файл конфигурации должен содержать свойство data-source.
  • Каждый файл конфигурации должен содержать свойство entities.
  • Конфигурация верхнего уровня должна включать runtime.
  • Дочерние конфигурации могут включать в себя runtime, но игнорируются.
  • Дочерние файлы конфигурации могут включать собственные дочерние файлы.
  • Файлы конфигурации можно упорядочить в вложенные папки.
  • Имена сущностей должны быть уникальными во всех файлах конфигурации.
  • Связи между сущностями в разных файлах конфигурации не поддерживаются.

Examples

{
  "data-source-files": [
    "dab-config-2.json",
    "my-folder/dab-config-3.json",
    "my-folder/my-other-folder/dab-config-4.json"
  ]
}