Bagikan melalui


Menambahkan lebih dari satu sumber data

Penyusun API Data mendukung titik akhir hibrid dengan menggunakan file sumber data, memungkinkan Anda menentukan beberapa sumber data dan entitasnya dalam file konfigurasi terpisah.

Pendekatan ini berguna untuk skenario seperti:

  • Anda perlu mengekspos entitas dari lebih dari satu database
  • Anda ingin mengatur konfigurasi secara modular
  • Anda perlu mengelola backend data yang berbeda secara independen

Structure

Untuk menentukan beberapa sumber data, buat beberapa file konfigurasi dan referensikan dalam data-source-files array konfigurasi tingkat atas.

File tingkat atas

{
  "data-source-files": [
    "dab-config-sql.json",
    "dab-config-cosmos.json"
  ],
  "runtime": {
    "rest": {
      "enabled": true
    },
    "graphql": {
      "enabled": true
    },
    "mcp": {
      "enabled": true
    }

  }
}

File anak: dab-config-sql.json

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  },
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

File anak: dab-config-cosmos.json

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "connection-string": "@env('COSMOS_CONNECTION_STRING')",
    "options": {
      "database": "library"
    }
  },
  "entities": {
    "LoanRecord": {
      "source": {
        "object": "LoanRecords"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Behavior

  • Hanya pengaturan file runtime tingkat atas yang dihormati
  • Setiap file anak harus berisi bagian data-source dan entities
  • Nama entitas harus unik secara global di semua file
  • Entitas yang ditentukan dalam file terpisah tidak dapat saling mereferensikan melalui hubungan
  • File dapat disarangkan dalam subfolder sesuai kebutuhan

Benefits

  • Pemisahan konfigurasi per backend yang bersih
  • Mengaktifkan API multi-database yang dapat diskalakan
  • Menyederhanakan pemeliharaan untuk sistem yang kompleks

Limitations

  • Tidak ada hubungan di seluruh file konfigurasi
  • Referensi file melingkar tidak diperbolehkan
  • Hanya perilaku runtime kontrol file tingkat atas