Data API ビルダーで構成ファイル環境を使用する
このガイドでは、構成ファイルを使用して開発環境をターゲットにする手順について説明します。 最終的な結果構成ファイルは、最小限の変更で将来運用データベース構成を追加できる十分な柔軟性を備える必要があります。
前提条件
- 既存の SQL データベース。
- データ管理クライアント
- クライアントがインストールされていない場合は、Azure Data Studio をインストールします
- データ API ビルダー CLI。 CLI をインストールする
SQL テーブルとデータのCreate
この例のシナリオで使用する架空のデータを含むテーブルをCreateします。
任意のクライアントまたはツールを使用して、SQL サーバーとデータベースに接続します。 たとえば、SQL Server Management Studio、Azure Data Studio、Visual Studio Code のSQL Server拡張機能などがありますが、これらに限定されません。
と 列を使用して という名前
Books
のテーブルをid
name
Createします。DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ); GO
4 つのサンプルブック行をテーブルに
Books
挿入します。INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
単純な
SELECT *
クエリを使用してデータをテストします。SELECT * FROM dbo.Books
基本構成ファイルCreateする
DAB CLI を使用してベースライン構成ファイルをCreateします。
を使用して、一般的な構成ファイルをCreate
dab init
します。dab init --database-type "mssql" --host-mode "Development"
を使用して Book エンティティを
dab add
追加します。dab add Book --source "dbo.Books" --permissions "anonymous:*"
現在の dab-config.json 構成ファイルを確認します。 ファイルには、1 つのエンティティ、REST API エンドポイント、GraphQL エンドポイントを使用した API のベースライン実装が含まれている必要があります。
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": true, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": true, "path": "/graphql", "allow-introspection": true }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "StaticWebApps" }, "mode": "development" } }, "entities": { "Book": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Book", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
環境変数ファイルのCreate
次に、DAB の環境変数を格納する環境ファイルを追加します。
- DAB CLI 構成ファイルと同じディレクトリに という名前
.env
のファイルをCreateします。
注意
や .env
ファイルなどの.gitignore
.editorconfig
ファイル名にはファイル名がなく、ファイル拡張子のみが含まれます。 名前は大文字と小文字は区別されませんが、規則は小文字です。
の値
Development
をDAB_ENVIRONMENT
持つ環境変数を追加します。 また、データベース 接続文字列で環境変数を追加SQL_DOCKER_CONNECTION_STRING
します。SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create環境構成ファイル
最後に、現在の構成と目的の環境構成の間の差分を含む開発構成ファイルを追加します。
dab-config.Development.json
ファイルを作成します。 関数を使用して開発環境で値を@env()
設定するには、次のコンテンツを追加しますconnection-string
。{ "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>", "data-source": { "database-type": "mssql", "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')" } }
変更を .env、dab-config.json、dab-config に保存します。Development.json ファイル。
テストの設定
を使用して
dab start
、ツールが期待どおりに起動することを検証します。dab start
ツールの出力には、実行中の API に移動するために使用するアドレスを含める必要があります。
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
ヒント
この例では、アプリケーションはポート 5000 で実行されています
localhost
。 実行中のアプリケーションのアドレスとポートが異なる場合があります。まず、 に GET 要求
/api/Book
を発行して、API を手動で試します。ヒント
この例では、URL は になります
https://localhost:5000/api/Book
。 この URL には、Web ブラウザーを使用して移動できます。次に、 の Swagger ドキュメント ページに
/swagger
移動します。ヒント
この例では、URL は になります
<https://localhost:5000/swagger
。 ここでも、Web ブラウザーを使用してこの URL に移動できます。最後に、この操作に移動して実行して、GraphQL エンドポイントを
/graphql
試します。query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
ヒント
この例では、URL は になります
https://localhost:5000/graphql
。 ここでも、Web ブラウザーを使用してこの URL に移動できます。