Bagikan melalui


Referensi skema konfigurasi penyusun API Data

Penyusun API Data memerlukan setidaknya satu file konfigurasi untuk dijalankan. File berbasis JSON ini menentukan penyiapan API Anda, dari pengaturan lingkungan hingga definisi entitas. Ini dimulai dengan $schema properti, yang memungkinkan validasi skema untuk sisa file.

Top-level properties

Property Description
$schema URI skema JSON untuk konfigurasi ini.
data-source Objek yang berisi pengaturan konektivitas database.
data-source-files Array jalur file konfigurasi lainnya.
runtime Objek yang mengonfigurasi perilaku runtime.
entities Objek yang menentukan semua entitas yang diekspos melalui REST atau GraphQL.

Data-source properties

Property Description
data-source Objek yang berisi pengaturan konektivitas database.
data-source.database-type Jenis database yang digunakan dalam backend (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string String koneksi untuk jenis database yang dipilih.
data-source.options Opsi khusus database dan pengaturan tingkat lanjut.
data-source.health Konfigurasi pemeriksaan kesehatan untuk sumber data.
data-source-files Array jalur file konfigurasi lainnya.

Runtime properties

Property Description
runtime Objek yang mengonfigurasi perilaku runtime.
runtime.pagination Pengaturan penomoran halaman untuk respons API.
runtime.rest Konfigurasi global REST API.
runtime.graphql Konfigurasi global GraphQL API.
runtime.cache Konfigurasi penembolokan respons global.
runtime.telemetry Konfigurasi telemetri, pengelogan, dan pemantauan.
runtime.health Konfigurasi pemeriksaan kesehatan global.

Entities properties

Property Description
entities Objek yang menentukan semua entitas yang diekspos melalui REST atau GraphQL.
entities.entity-name.source Detail sumber database untuk entitas.
entities.entity-name.rest Konfigurasi REST API untuk entitas.
entities.entity-name.graphql Konfigurasi API GraphQL untuk entitas.
entities.entity-name.permissions Izin dan kontrol akses untuk entitas.
entities.entity-name.relationships Hubungan dengan entitas lain.
entities.entity-name.cache Konfigurasi penembolokan tingkat entitas.
entities.entity-name.health Konfigurasi pemeriksaan kesehatan tingkat entitas.

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

File skema tersedia pada URL tertentu, memastikan Anda dapat menggunakan versi yang benar atau skema terbaru yang tersedia.

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

Ganti VERSION-suffix dengan versi yang Anda inginkan.

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

File sumber data

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

Penyusun API Data mendukung beberapa file konfigurasi, dengan satu ditunjuk sebagai pengaturan pengelolaan runtime file tingkat atas. Semua konfigurasi memiliki skema JSON yang sama, memungkinkan runtime pengaturan di setiap atau setiap file tanpa kesalahan. Membagi entitas untuk organisasi yang lebih baik.

Diagram beberapa file konfigurasi yang dirujuk sebagai array dalam satu file konfigurasi.

Format

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

Beberapa aturan konfigurasi

  • Setiap file konfigurasi harus menyertakan properti data-source.
  • Setiap file konfigurasi harus menyertakan properti entities.
  • Konfigurasi tingkat atas harus mencakup runtime.
  • Konfigurasi anak dapat mencakup runtime, tetapi diabaikan.
  • File konfigurasi anak dapat menyertakan file anak mereka sendiri.
  • File konfigurasi dapat diatur ke dalam subfolder.
  • Nama entitas harus unik di semua file konfigurasi.
  • Hubungan antar entitas dalam file konfigurasi yang berbeda tidak didukung.

Examples

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