次の方法で共有


Data API Builder バージョン 1.1 の新機能

Data API Builder (DAB) バージョン 1.1 の更新と機能強化に関するリリース ノートと情報。

重要

これは、Data API Builder (DAB) での最初の一般提供 (GA) リリースです。

GitHub リリース ノート

すべての変更と機能強化の包括的な一覧については、次のリリース ページを参照してください。

Link
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 は操作のみです。

たとえば、関連する エンティティと Chapter エンティティがあるとBookします。 複数のミューテーションを使用すると、プライマリ ブック エンティティとすべての関連するチャプター エンティティを 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 support」を参照してください。

アイテム レベルのセキュリティ

Azure Cosmos DB for NoSQL では、項目レベルのセキュリティ (データベース ポリシー) がサポートされるようになりました。 データベース ポリシー式が評価され、現在のロールがアクセスできる項目が決定されます。

たとえば、このロール定義では、 という名前scoped-readerの新しいロールを定義します。このロールは、 が ownerId ID プロバイダーの@claimsオブジェクトから既存UserIdの アイテムと同等の項目のみを読み取ることができます。

{
  "<entity-name>": {
    "permissions": [
      {
        "role": "scoped-reader",
        "actions": [
          {
            "action": "read",
            "policy": {
              "database": "@item.ownerId eq @claims.UserId"
            }
          }
        ]
      }
    ]
  }
}

詳細については、「 azure/data-api-builder - データベース ポリシーを使用した項目レベルの認証のサポート」を参照してください。

メモリ内キャッシュのサポート

既存の Azure Cosmos DB for NoSQL クエリ エンジンをUpdatesして、Azure Cosmos DB のメモリ内キャッシュを使用します。

詳細については、「 azure/data-api-builder - メモリ内キャッシュのサポート」を参照してください。

PostgreSQL の機能強化

DAB の既存の PostgreSQL サポートが強化されています。

アプリケーション名を接続文字列に連結する

DAB が PostgreSQL 接続文字列を DAB アプリケーション名で補完するようになりました。 ツールは、アプリケーション名が既に接続文字列に存在するかどうかを確認し、次のいずれかを実行します。

  • 新しい DAB アプリケーション名が存在しない場合、または
  • 区切り記号を使用して、既存のアプリケーション名の後に DAB アプリケーション名を , 追加します。

詳細については、「 azure/data-api-builder - PostgreSQL 接続のアプリケーション名を追加する」を参照してください。