次の方法で共有


Data API Builder バージョン 1.1 の新機能 (2024 年 5 月)

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 接続のアプリケーション名を追加する」を参照してください。