Azure SQL Database 用のデータ API ビルダーについて調べる

完了

今日のデータによって主導される世界では、データに効率的にアクセスしてそれを操作する能力は、企業や開発者にとって非常に重要です。 データ API ビルダー (DAB) は、Azure SQL Database 用の最新の REST と GraphQL のエンドポイントを作成し、データベースに対して CRUD (作成、読み取り、更新、削除) 操作を実行するカスタム API を置き換えるための、強力なソリューションを提供します。

Azure データ API ビルダーは、開発者向けに設計されたオープンソース ツールであり、データベース オブジェクトをエンドポイントとして公開するプロセスを簡単にします。 Azure SQL、SQL Server、PostgreSQL、Azure Cosmos DB を初めとする多くのデータベースがサポートされています。 DAB を使うと、コードを書かなくても、セキュリティ保護されたスケーラブルでハイ パフォーマンスの API を追加コストなしで作成できます。

データ API ビルダーのすべてのコンポーネント間の関係を示す図。

主な機能を調べる

開発プロセスで DAB を使うと、多くの利点があります。 それがプロジェクトの要件にどの程度よく合うかを判断するのに役立つ主な利点を次に示します。

  • クロスプラットフォームの互換性: DAB はクロスプラットフォームであり、任意のクラウドまたはオンプレミス環境で実行できます。 リレーショナル データベースや NoSQL データベースなど、複数のバックエンド データ ソースがサポートされています。
  • セキュリティと認証: DAB は、OAuth2、EasyAuth、Microsoft Entra ID など、さまざまな認証方法と統合されます。 また、ロールベースの承認ときめ細かなセキュリティ制御もサポートしています。 つまり、データにアクセスできるユーザーとできることを制御しながら、データを公開できます。
  • 使いやすさ:1 つの構成ファイルを使って API エンドポイントを定義できるため、セットアップ プロセスを簡単で効率的にできます。
  • Azure サービスとの統合: DAB は、Azure Static Web Apps、Azure Container Apps、その他の Azure サービスとシームレスに統合され、その機能とスケーラビリティが向上します。

データ API ビルダーで使用できる機能の一覧については、「データ API ビルダーで利用できる機能」をご覧ください。

データ API ビルダーを使用する

Azure データ API ビルダーを使い始めるには、Azure サブスクリプションがあり、最新の .NET 8Azure Developer CLI などの必要なツールがインストールされていることを確認します。

  1. 新しいプロジェクトを作成する:Azure Developer CLI を使い、必要なサービスを作成してデプロイします。 たとえば、Azure Developer CLI を使って、データ API ビルダーをホストする Azure 静的 Web アプリをデプロイします。 プロジェクトを作成するディレクトリに移動し、次のコマンドを実行して新しい Azure 静的 Web アプリ プロジェクトを作成します。

    azd init --template staticwebapp
    azd up
    
  2. データベース接続を構成する: データベース接続機能を使って、デプロイした静的 Web アプリに Azure SQL Database をリンクします。 作成した Azure 静的 Web アプリに移動し、[設定][データベース接続] ページで既存のデータベースをリンクします。

  3. API エンドポイントを定義する: 構成ファイルを作成して REST または GraphQL エンドポイントを定義します。 このファイルでは、公開するデータベース オブジェクトと、許可される操作を指定します。 たとえば、次のコマンドを実行して、データベース エンティティを構成ファイルに追加できます。

    dab add "Address" --source "dbo.Address" --permissions "anonymous:*" --config "swa-db-connections/staticwebapp.database.config.json"
    

構成ファイルを確認する

ここでは、Azure SQL Database のテーブルを公開するための構成ファイルの簡単な例を示します。

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "Server=tcp:your_server.database.windows.net,1433;Initial Catalog=your_database;Persist Security Info=False;User ID=your_user;Password=your_password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },
  "entities": {
    "products": {
      "source": "Address",
      "rest": true,
      "graphql": true,
      "permissions": [
        {
          "role": "anonymous",
          "actions": ["read"]
        }
      ]
    }
  }
}

この構成では、REST と GraphQL 両方のエンドポイントとして Address テーブルを公開し、匿名ユーザーに読み取りアクセスを許可します。