Data API Builder (DAB) バージョン 1.1 の更新プログラムと機能強化に関するリリース ノートと情報。
重要
このリリースは、Data API Builder (DAB) での最初の一般提供 (GA) リリースです。
GitHub リリース ノート
すべての変更と機能強化の包括的な一覧については、次のリリース ページを参照してください。
| リンク | |
|---|---|
| 2024-05-14 - バージョン 1.1.7 | https://github.com/azure/data-api-builder/releases/tag/v1.1.7 |
.NET 8 のサポート
DAB では、マルチターゲットを使用して、.NET 6 と .NET 8 の両方の長期サポート (LTS) バージョンをサポートするようになりました。
詳細については、「 azure/data-api-builder - .NET マルチフレームワーク のターゲット設定」を参照してください。
GraphQL の複数の変更のサポート
DAB では、複数の変更操作を 1 つの GraphQL トランザクションにまとめる機能がサポートされるようになりました。 現在のサポートのスコープは、 create 操作のみです。
たとえば、関連する Book エンティティと Chapter エンティティがあるとします。 複数の変更を使用すると、プライマリ ブック エンティティとすべての関連するチャプター エンティティを 1 つの操作として作成できます。
mutation {
createBook(
item: {
title: "Data API builder deep-dive"
chapters: [
{ name: "Multiple mutations" }
{ name: "Relationships" }
]
}
) {
title
chapters {
items {
name
}
}
}
}
この機能の詳細については、 複数の変異に関するガイドを参照してください。
詳細については、「 azure/data-api-builder - GraphQL での複数の変更」を参照してください。
ページネーションの機能強化
DAB には、組み込みの改ページ位置のサポートのさまざまな特性を調整するための paginationOptions 構成プロパティが追加されました。 サブプロパティには次のものが含まれます。
| 既定値 | 説明 | |
|---|---|---|
default-page-size |
100 | ページ サイズを指定せずに要求が行われた場合のページ サイズ。 |
max-page-size |
100,000 | ページ サイズに -1 指定された要求が行われた場合のページ サイズ。 |
詳細については、「 azure/data-api-builder - 改ページ制限の追加」を参照してください。
正常性状態
以前のバージョンの DAB では、API はルート (/) エンドポイントでhealthyの文字列ステータス メッセージを返していました。 これで、DAB がホストされているか、オープン ソース ソフトウェア (OSS) バージョンであるかを示す 状態、 バージョン、 アプリケーション名 を含む JSON オブジェクトが返されます。
たとえば、OSS コンテナー イメージのバージョン 0.12.0 では、既定で次のステータス メッセージが返されます。
{
"status": "Healthy",
"version": "0.12.0",
"app-name": "dab_oss_0.12.0"
}
詳細については、 azure/data-api-builder - 正常性エンドポイントメタデータの改善に関するページを参照してください。
REST 複数データベースのサポート
REST API では、複数のデータベース (またはデータ ソース) がサポートされるようになりました。 データベース名は、各エンティティに基づいて決定されます。
詳細については、「 azure/data-api-builder - REST での複数データベースのサポート」を参照してください。
Azure Cosmos DB for NoSQL の機能強化
DAB の既存の Azure Cosmos DB for NoSQL サポートに対して、いくつかの機能強化が行われました。
パッチ操作のサポート
azure Cosmos DB パッチ操作は、 patch<entity-name> の変更を使用してサポートされるようになりました。
たとえば、さまざまな作成者項目が publisherでパーティション分割された小さなコンテナーがあるとします。 次に、コンテナーに次の項目とスキーマがあるとします。
{
"id": "04511cbc-459d-4e39-b957-363f26771fc0",
"firstName": "Jacob",
"lastName": "Hancock",
"publisher": "Contoso Books"
}
type Author @model {
id: ID!
firstName: String!
middleName: String
lastName: String!
publisher: String!
}
GraphQL を使用して修正プログラムを適用するには、一意識別子とパーティション キーの両方を指定する patchAuthor の変更を使用します。
mutation {
patchAuthor(
item: {
middleName: "A."
}
id: "04511cbc-459d-4e39-b957-363f26771fc0"
_partitionKeyValue: "Contoso Books"
) {
middleName
}
}
詳細については、「 azure/data-api-builder - Patch のサポート」を参照してください。
項目レベルのセキュリティ
項目レベルのセキュリティ (データベース ポリシー) が Azure Cosmos DB for NoSQL でサポートされるようになりました。 データベース ポリシー式が評価され、現在のロールがアクセスできる項目が決定されます。
たとえば、このロール定義では、id プロバイダーの@claims オブジェクトから既存のUserIdと同じownerId項目のみを読み取ることができるscoped-readerという名前の新しいロールを定義します。
{
"<entity-name>": {
"permissions": [
{
"role": "scoped-reader",
"actions": [
{
"action": "read",
"policy": {
"database": "@item.ownerId eq @claims.UserId"
}
}
]
}
]
}
}
詳細については、「 azure/data-api-builder - データベース ポリシーを使用した項目レベルの認証のサポート」を参照してください。
メモリ内キャッシュのサポート
Azure Cosmos DB のメモリ内キャッシュを使用するように、既存の Azure Cosmos DB for NoSQL クエリ エンジンを更新します。
詳細については、「 azure/data-api-builder - メモリ内キャッシュのサポート」を参照してください。
PostgreSQL の機能強化
DAB の既存の PostgreSQL サポートが強化されています。
アプリケーション名を接続文字列に連結する
DAB は、POSTGRESQL 接続文字列を DAB アプリケーション名で補完するようになりました。 このツールは、接続文字列にアプリケーション名が既に存在するかどうかを確認します。次のいずれかを実行します。
- 新しい DAB アプリケーション名が存在しない場合、または
- 既存のアプリケーション名の後に、
,区切り記号が付いた DAB アプリケーション名を追加します。
詳細については、「 azure/data-api-builder - PostgreSQL 接続のアプリケーション名を追加する」を参照してください。