Dela via


Referens för konfigurationsschema för Data API Builder

Data API Builder kräver minst en konfigurationsfil för att köras. Den här JSON-baserade filen definierar din API-konfiguration, från miljöinställningar till entitetsdefinitioner. Den börjar med en $schema egenskap som aktiverar schemaverifiering för resten av filen.

Top-level properties

Property Description
$schema URI för JSON-schemat för den här konfigurationen.
data-source Objekt som innehåller inställningar för databasanslutning.
data-source-files Matris med andra konfigurationsfilsökvägar.
runtime Objekt som konfigurerar körningsbeteenden.
entities Objekt som definierar alla entiteter som exponeras via REST eller GraphQL.

Data-source properties

Property Description
data-source Objekt som innehåller inställningar för databasanslutning.
data-source.database-type Databastyp som används i serverdelen (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Anslutningssträng för den valda databastypen.
data-source.options Databasspecifika alternativ och avancerade inställningar.
data-source.health Konfiguration av hälsokontroll för datakällan.
data-source-files Matris med andra konfigurationsfilsökvägar.

Runtime properties

Property Description
runtime Objekt som konfigurerar körningsbeteenden.
runtime.pagination Sidnumreringsinställningar för API-svar.
runtime.rest Global konfiguration för REST API.
runtime.graphql Global konfiguration av GraphQL API.
runtime.cache Konfiguration av cachelagring av globala svar.
runtime.telemetry Konfiguration av telemetri, loggning och övervakning.
runtime.health Konfiguration av global hälsokontroll.

Entities properties

Property Description
entities Objekt som definierar alla entiteter som exponeras via REST eller GraphQL.
entities.entity-name.source Information om databaskällan för entiteten.
entities.entity-name.rest REST API-konfiguration för entiteten.
entities.entity-name.graphql GraphQL API-konfiguration för entiteten.
entities.entity-name.permissions Behörigheter och åtkomstkontroll för entiteten.
entities.entity-name.relationships Relationer till andra entiteter.
entities.entity-name.cache Cachelagringskonfiguration på entitetsnivå.
entities.entity-name.health Konfiguration av hälsokontroll på entitetsnivå.

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

Schemafiler är tillgängliga på specifika URL:er, vilket säkerställer att du kan använda rätt version eller det senaste tillgängliga schemat.

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

Ersätt VERSION-suffix med den version du vill ha.

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

Datakällans filer

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

Data API Builder har stöd för flera konfigurationsfiler, där en har angetts som inställningarna för filhantering runtime på den översta nivån. Alla konfigurationer delar samma JSON-schema, vilket tillåter runtime inställningar i alla filer eller filer utan fel. Dela entiteter för bättre organisation.

Diagram över flera konfigurationsfiler som refereras till som en matris i en enda konfigurationsfil.

Format

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

Flera konfigurationsregler

  • Varje konfigurationsfil måste innehålla egenskapen data-source.
  • Varje konfigurationsfil måste innehålla egenskapen entities.
  • Konfigurationen på den översta nivån måste innehålla runtime.
  • Underordnade konfigurationer kan innehålla runtime, men ignoreras.
  • Underordnade konfigurationsfiler kan innehålla egna underordnade filer.
  • Konfigurationsfiler kan ordnas i undermappar.
  • Entitetsnamn måste vara unika för alla konfigurationsfiler.
  • Relationer mellan entiteter i olika konfigurationsfiler stöds inte.

Examples

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