Freigeben über


Referenz zum Konfigurationsschema des Daten-API-Generators

Der Daten-API-Generator erfordert mindestens eine Konfigurationsdatei zum Ausführen. Diese JSON-basierte Datei definiert Ihr API-Setup von Umgebungseinstellungen bis hin zu Entitätsdefinitionen. Sie beginnt mit einer $schema Eigenschaft, die die Schemaüberprüfung für den Rest der Datei ermöglicht.

Top-level properties

Property Description
$schema URI des JSON-Schemas für diese Konfiguration.
data-source Objekt, das Datenbankkonnektivitätseinstellungen enthält.
data-source-files Array anderer Konfigurationsdateipfade.
runtime Objekt, das Laufzeitverhalten konfiguriert.
entities Objekt, das alle Entitäten definiert, die über REST oder GraphQL verfügbar gemacht werden.

Data-source properties

Property Description
data-source Objekt, das Datenbankkonnektivitätseinstellungen enthält.
data-source.database-type Datenbanktyp, der im Back-End verwendet wird (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Verbindungszeichenfolge für den ausgewählten Datenbanktyp.
data-source.options Datenbankspezifische Optionen und erweiterte Einstellungen.
data-source.health Integritätsprüfungskonfiguration für die Datenquelle.
data-source-files Array anderer Konfigurationsdateipfade.

Runtime properties

Property Description
runtime Objekt, das Laufzeitverhalten konfiguriert.
runtime.pagination Paginierungseinstellungen für API-Antworten.
runtime.rest Globale REST-API-Konfiguration.
runtime.graphql Globale GraphQL-API-Konfiguration.
runtime.cache Konfiguration der globalen Antwortzwischenspeicherung.
runtime.telemetry Telemetrie-, Protokollierungs- und Überwachungskonfiguration.
runtime.health Konfiguration der globalen Integritätsprüfung.

Entities properties

Property Description
entities Objekt, das alle Entitäten definiert, die über REST oder GraphQL verfügbar gemacht werden.
entities.entity-name.source Details zur Datenbankquelle für die Entität.
entities.entity-name.rest REST-API-Konfiguration für die Entität.
entities.entity-name.graphql GraphQL-API-Konfiguration für die Entität.
entities.entity-name.permissions Berechtigungen und Zugriffssteuerung für die Entität.
entities.entity-name.relationships Beziehungen zu anderen Entitäten.
entities.entity-name.cache Konfiguration der Zwischenspeicherung auf Entitätsebene.
entities.entity-name.health Konfiguration der Integritätsprüfung auf Entitätsebene.

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"
}

Versioning

Schemadateien sind bei bestimmten URLs verfügbar, um sicherzustellen, dass Sie die richtige Version oder das neueste verfügbare Schema verwenden können.

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

Ersetzen Sie VERSION-suffix durch die gewünschte Version.

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

Datenquellendateien

Parent Property Type Required Default
$root data-source-files string array ❌ Nein None

Der Daten-API-Generator unterstützt mehrere Konfigurationsdateien, wobei eine als Datei auf oberster Ebene festgelegt ist, die Einstellungen verwaltet runtime . Alle Konfigurationen verwenden dasselbe JSON-Schema, sodass Einstellungen in einer oder jeder Datei ohne Fehler zulässig runtime sind. Teilen Sie Entitäten für eine bessere Organisation.

Diagramm mehrerer Konfigurationsdateien, auf die als Array in einer einzelnen Konfigurationsdatei verwiesen wird.

Format

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

Mehrere Konfigurationsregeln

  • Jede Konfigurationsdatei muss die eigenschaft data-source enthalten.
  • Jede Konfigurationsdatei muss die eigenschaft entities enthalten.
  • Die Konfiguration auf oberster Ebene muss enthalten runtimesein.
  • Untergeordnete Konfigurationen können enthalten runtime, werden jedoch ignoriert.
  • Untergeordnete Konfigurationsdateien können ihre eigenen untergeordneten Dateien enthalten.
  • Konfigurationsdateien können in Unterordner unterteilt werden.
  • Entitätsnamen müssen für alle Konfigurationsdateien eindeutig sein.
  • Beziehungen zwischen Entitäten in verschiedenen Konfigurationsdateien werden nicht unterstützt.

Examples

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