マイクロソフトは最近、Azure Cosmos DB向けData APIビルダーの一般提供を発表した。このオープンソースプロジェクトは、AzureデータベースとオンプレミスストアへのRESTとGraphQLエンドポイントを提供する。
新しいData API builder(DAB)は、Azure Cosmos DBコレクションにGraphQLエンドポイントを公開するプロセスの簡素化を目的としており、パッチ操作を含むリレーショナルクエリ、フィルタリング、ミューテーションを可能にする。DABは、クロスプラットフォームCLI、ネイティブOpenAPIサポート、RESTエンドポイント用のSwagger、GraphQLエンドポイント用のBanana Cake Popを提供する。
Azure Cosmos DBのプロダクトマネージャーであるSajeetharan Sinnathurai氏は、いくつかの使用例について説明している。
データクリアリングハウスの構築、モバイルアプリの作成、Azureデータベースの調整など、Data API Builderが味方してくれます。NoSQLからリレーショナル・データベースまで、様々なバックエンド・ストアをシームレスに統合し、複数のデータベースを一度に楽に管理できます。
出典:マイクロソフトのブログ
クロスプラットフォームで言語に依存しないDABは、単一の設定ファイルでデータベースに対するCRUD操作をするカスタムAPIの代替として設計されている。再試行ポリシー、包括的なロギング、インメモリーキャッシュ、カラムのマッピングと結果のフィルタリング機能を提供する。DABはC#で書かれたASP.NETプロジェクトで、GraphQLにはChilliCreamのHot Chocolateを、インメモリーキャッシュにはFusionCacheを使用している。
このプロジェクトの一般公開について、マイクロソフトのシニア・プロダクト・マネージャーであるJerry Nixon氏は次のように語っている。
3年近く前、Data API builderは単なる夢として始まりました。クライアント・アプリケーションでデータベースにアクセスしたい開発者の摩擦を減らすにはどうしたらいいでしょうか?私たちはこれを解決するためにData API builderを開発し、データベース上で安全で機能豊富なRESTとGraphQLエンドポイントをゼロコードで提供しました。
Azureによると、コンテナベースのDABによって、開発者はきめ細かく柔軟なセキュリティ機能を維持しながら、GraphQLエンドポイントを作成できるという。とSinnathurai氏は付け加える。
DABは標準的なDockerフレンドリーなコンテナです。完全にステートレスでスケーラブルです。独自の環境でもクラウドでも構いません。1つのデータベースまたは複数のデータベースに対して、1つまたは複数のコンテナを実行します。
オンプレミスのカスタムデプロイメントをサポートする一方で、DABはAzure Static Web Appsとネイティブに統合し、Azure Container Apps、Azure Container Instances、Azure Kubernetes Service、Azure Web Apps for Containersと連携する。
Cosmos DB for MongoDBのサポートを追加するよう求める開発者もいるが、マイクロソフトのプリンシパル・プロダクト・マネージャーであるArun Vijayraghavan氏は次のようにコメントしている。
DABプロジェクトで本当に際立っているのは、データベースをエッジプロバイダーに近づけることです。例えば、Cloudflare、Vercel、Netlifyなどのエッジ・プロバイダーは、すべてJavascript V8やDenoをベースにしており、データベースとやりとりするためのAPIのフルセットを持っていません。そのため、データベースにアクセスするには REST API を使用するのが最善の解決策です。
Data API builderプロジェクトは無料で、プレミアム階層はなく、MITライセンスの下でGitHubで利用できる。