共用方式為


什麼是適用於 Azure 資料庫的數據 API 產生器?

Data API 建構器(Data API Builder,DAB)是一個開源、基於配置的引擎,能為支援的資料庫(如 SQL Server、Azure Cosmos DB、PostgreSQL 及 MySQL)建立 REST 與 GraphQL API。 DAB 可以在任何雲端或本地運作,且免費使用。 你可以用單一 JSON 檔案來設定,這樣就能在不寫自訂 API 的情況下暴露資料庫物件。

Data API 建構者吉祥物戴著建築帽的插圖。

數據 API 產生器會取代對資料庫執行一般 CRUD(建立、讀取、更新、刪除)作業的大部分自定義數據 API。 DAB 與語言、技術和架構無關。 它不需要應用程式代碼,且只需一個設定檔。 最棒的是,它完全免費,沒有高級訂閱,並且能在任何地方以無狀態方式運行。

端點支援

Data API 建構器同時支援 REST 與 GraphQL 端點,開箱即用且同時使用。 從 1.7 版本起,DAB 也支援 Model Context Protocol(MCP),用於代理應用程式 ,具備相同豐富的功能。

Data API 建構器中端點支援的示意圖。

DAB 包含跨平台 CLI、OpenTelemetry 及健康檢查功能。 它也支援 REST 端點的 OpenAPI 和 Swagger,以及 GraphQL 端點的 Nitro(前稱 Banana Cake Pop)。

小提示

開箱即用的端點功能:

  • 資料分頁
  • 資料過濾
  • 資料排序
  • 欄位選擇
  • 預存程式
  • 關係導航
  • SQL 家族資料庫的聚合

資料庫支援

數據 API 產生器 (DAB) 同時支援多個後端數據源,包括關係型和 NoSQL 來源。 支援的資料庫包括 SQL Server 與 Azure SQL、Azure Cosmos DB、PostgreSQL 及 MySQL。 有關資料庫的詳細資訊與限制,請參見 功能可用性

支援資料 API 建構器資料庫的示意圖。

Data API 建構器可以同時連接多個資料來源。 你可以將關聯式來源與 JSON 或文件資料庫結合,並混合雲端與本地資料庫。 這種彈性讓 DAB 能支援從簡單設定到複雜部署拓撲的各種方案。

安全性

Data API 構建器的無狀態、適合 Docker 的容器可以透過 Azure App Service EasyAuth、Microsoft Entra ID 或任何 JSON Web Token (JWT) 伺服器加以保護。 它具有彈性的原則引擎、細微的安全性控制,以及自動將宣告數據傳遞至 SQL 會話內容。

Data API 建構器的認證選項示意圖。

Data API 建構器支援多種認證提供者:

Provider 用例
Microsoft Entra 身份識別 使用 Microsoft 身份的生產應用程式
客製化 JWT 第三方身份提供者(Okta、Auth0、Keycloak)
應用程式服務 Azure App Service EasyAuth 背後運行的應用程式
模擬器 本機開發和測試

有關逐步設定指南,請參閱 安全性概述

建築

此圖表會細分數據 API 產生器的所有元件之間的關聯性。 它從資料庫結構開始,該結構定義了資料表、檢視和儲存程序。 DAB 設定檔會將這些物件投影到抽象層中。 在該層中,你可以命名實體、選擇或別名欄位、定義關係,並套用權限。 執行時,Data API 建構器會讀取此設定以產生一致的 API 表面,透過 REST 與 GraphQL 端點暴露相同的實體模型。 這種分離讓你能獨立演進資料庫,同時維持應用程式與客戶的穩定且安全的合約。

資料 API 建構架構示意圖。

你用一個 JSON 檔案來設定 Data API 建構器。 在檔案中,你定義了:

  • 伺服器如何連接資料來源
  • 哪些資料表、檢視和儲存程序會被揭露
  • 實體如何被塑造、命名與相關
  • 哪些角色可以存取每個操作

部署選項

Data API 建構器容器主機選項的示意圖。

DAB 可以很好地搭配 Azure Container Apps、Azure Container Instances、Azure Kubernetes Service 和 Azure Web Apps for Containers。 DAB 可搭配這些服務使用,同時完全支援自定義的內部部署部署。

整合與功能

DAB 也與 Application Insights 緊密整合。 組態檔可以反映資料庫中的關聯性,或定義支援熱重載的新虛擬配置檔。 GraphQL 端點允許在單一交易中執行多個巢狀的 Create 語句,而 REST 端點提供內部記憶體快取功能,並豐富支援類似 OData 的查詢字串關鍵字。

少寫程式碼,多功能

DAB 能協助減少自訂 API 程式碼、縮短 CI/CD 管線,並引入通常只限最大開發團隊使用的標準與先進功能。 它既安全又功能豐富,同時保持極為簡單,可擴展且易於觀察。

開源

數據 API 產生器是開放原始碼,並在 MIT 授權下發行。 存放庫可在 Azure/data-api-builder 的 GitHub 上取得。