搭配使用組態檔環境與數據 API 產生器
本指南會逐步解說使用組態檔以開發環境為目標的步驟。 最終結果組態檔應具有足夠的彈性,以最少變更在未來新增生產資料庫組態。
必要條件
- 現有的 SQL 資料庫。
- 數據管理用戶端
- 如果您沒有安裝用戶端, 請安裝 Azure Data Studio
- 數據 API 產生器 CLI。 安裝 CLI
Create SQL 資料表和數據
Create 此範例案例中要使用的虛構數據數據表。
使用您慣用的用戶端或工具連線到 SQL Server 和資料庫。 範例包括但不限於:SQL Server Management Studio、Azure Data Studio 和適用於 Visual Studio Code 的 SQL Server 延伸模組。
Create具有
id
和name
數據行的Books
數據表。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
將四個範例書籍數據列插入
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"
使用
dab add
新增 Book 實體。dab add Book --source "dbo.Books" --permissions "anonymous:*"
觀察您目前的 dab-config.json 組態檔。 檔案應該包含 API 的基準實作,其中包含單一實體、REST API 端點和 GraphQL 端點。
{ "$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 的環境變數。
- Create 與 DAB CLI 組態檔位於相同目錄中名為
.env
的檔案。
注意
.env
檔名,例如 .gitignore
和 .editorconfig
檔案沒有檔名,只有擴展名。 名稱不區分大小寫,但慣例為小寫。
DAB_ENVIRONMENT
新增值為的Development
環境變數。 此外,使用您的資料庫 連接字串 新增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。接下來,流覽至 位於
/swagger
的 Swagger 檔頁面。提示
在這裡範例中,URL 會是
<https://localhost:5000/swagger
。 同樣地,您可以使用網頁瀏覽器流覽至此 URL。最後,流覽至
/graphql
並執行這項作業,以嘗試 GraphQL 端點。query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
提示
在這裡範例中,URL 會是
https://localhost:5000/graphql
。 同樣地,您可以使用網頁瀏覽器流覽至此 URL。