Udostępnij za pomocą


Dokumentacja schematu konfiguracji konstruktora interfejsu API danych

Konstruktor interfejsu API danych wymaga uruchomienia co najmniej jednego pliku konfiguracji. Ten plik oparty na formacie JSON definiuje konfigurację interfejsu API— od ustawień środowiska po definicje jednostek. Zaczyna się od $schema właściwości, która umożliwia walidację schematu w pozostałej części pliku.

Top-level properties

Property Description
$schema Identyfikator URI schematu JSON dla tej konfiguracji.
data-source Obiekt zawierający ustawienia łączności z bazą danych.
data-source-files Tablica innych ścieżek plików konfiguracji.
runtime Obiekt konfigurujący zachowania środowiska uruchomieniowego.
entities Obiekt definiujący wszystkie jednostki uwidocznione za pośrednictwem interfejsu REST lub GraphQL.

Data-source properties

Property Description
data-source Obiekt zawierający ustawienia łączności z bazą danych.
data-source.database-type Typ bazy danych używany w zapleczu (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Parametry połączenia dla wybranego typu bazy danych.
data-source.options Opcje specyficzne dla bazy danych i ustawienia zaawansowane.
data-source.health Konfiguracja kontroli kondycji źródła danych.
data-source-files Tablica innych ścieżek plików konfiguracji.

Runtime properties

Property Description
runtime Obiekt konfigurujący zachowania środowiska uruchomieniowego.
runtime.pagination Ustawienia stronicowania dla odpowiedzi interfejsu API.
runtime.rest Konfiguracja globalna interfejsu API REST.
runtime.graphql Konfiguracja globalna interfejsu API GraphQL.
runtime.cache Globalna konfiguracja buforowania odpowiedzi.
runtime.telemetry Telemetria, rejestrowanie i konfiguracja monitorowania.
runtime.health Globalna konfiguracja kontroli kondycji.

Entities properties

Property Description
entities Obiekt definiujący wszystkie jednostki uwidocznione za pośrednictwem interfejsu REST lub GraphQL.
entities.entity-name.source Szczegóły źródła bazy danych dla jednostki.
entities.entity-name.rest Konfiguracja interfejsu API REST dla jednostki.
entities.entity-name.graphql Konfiguracja interfejsu API GraphQL dla jednostki.
entities.entity-name.permissions Uprawnienia i kontrola dostępu dla jednostki.
entities.entity-name.relationships Relacje z innymi jednostkami.
entities.entity-name.cache Konfiguracja buforowania na poziomie jednostki.
entities.entity-name.health Konfiguracja kontroli kondycji na poziomie jednostki.

Schema

Parent Property Typ Required Default
$root $schema ciąg ✔️ 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

Najnowszy schemat jest zawsze dostępny pod adresem https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json.

Versioning

Pliki schematu są dostępne pod określonymi adresami URL, dzięki czemu można użyć poprawnej wersji lub najnowszego dostępnego schematu.

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

Zastąp VERSION-suffix odpowiednią wersją.

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

Pliki źródła danych

Parent Property Typ Required Default
$root data-source-files string array ❌ Nie None

Konstruktor interfejsu API danych obsługuje wiele plików konfiguracji z jednym wyznaczonym jako ustawienia zarządzania plikami runtime najwyższego poziomu. Wszystkie konfiguracje współużytkuje ten sam schemat JSON, zezwalając na runtime ustawienia w dowolnym lub każdym pliku bez błędów. Dzielenie jednostek w celu uzyskania lepszej organizacji.

Diagram przedstawiający wiele plików konfiguracji, do których odwołuje się tablica w jednym pliku konfiguracji.

Format

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

Wiele reguł konfiguracji

  • Każdy plik konfiguracji musi zawierać właściwość data-source.
  • Każdy plik konfiguracji musi zawierać właściwość entities.
  • Konfiguracja najwyższego poziomu musi zawierać wartość runtime.
  • Konfiguracje podrzędne mogą zawierać runtimeelement , ale są ignorowane.
  • Podrzędne pliki konfiguracji mogą zawierać własne pliki podrzędne.
  • Pliki konfiguracji można organizować w podfoldery.
  • Nazwy jednostek muszą być unikatowe we wszystkich plikach konfiguracji.
  • Relacje między jednostkami w różnych plikach konfiguracji nie są obsługiwane.

Examples

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