次の方法で共有


複数のデータ ソースを追加する

データ API ビルダーは、 データ ソース ファイルを使用してハイブリッド エンドポイントをサポートするため、複数のデータ ソースとそのエンティティを個別の構成ファイルに定義できます。

これは、次の場合に便利です。

  • 複数のデータベースからエンティティを公開する必要がある
  • 構成をモジュール形式で整理する必要がある
  • 異なるデータ バックエンドを個別に管理する必要がある

Structure

複数のデータ ソースを定義するには、複数の構成ファイルを作成し、最上位の構成の data-source-files 配列で参照します。

Top-level file

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

子ファイル: 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" ] }
      ]
    }
  }
}

子ファイル: dab-config-cosmos.json

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

Behavior

  • 最上位ファイルの runtime 設定のみが尊重されます
  • すべての子ファイルには、 data-source セクションと entities セクションの両方が含まれている必要があります
  • エンティティ名は、すべてのファイルでグローバルに一意である必要があります
  • 個別のファイルで定義されているエンティティは、リレーションシップを介して相互に参照することはできません
  • ファイルは、必要に応じてサブフォルダーに入れ子にすることができます

Benefits

  • バックエンドごとの構成のクリーンな分離
  • スケーラブルなマルチデータベース API を有効にする
  • 複雑なシステムのメンテナンスを簡素化

Limitations

  • 構成ファイル間のリレーションシップなし
  • 循環ファイル参照は許可されません
  • 最上位レベルのファイルのみがランタイムの動作を制御します