數據 API 產生器 (DAB) 會透過資料庫提供 REST API。 它也提供 GraphQL API。 它不僅支援 SQL Server,而且支援 Azure SQL Database、Azure Cosmos DB、PostgreSQL、MySQL 和 SQL 數據倉儲。 DAB 可在任何雲端或內部部署環境中執行,且開放原始碼且可供免費使用。 它是安全、功能豐富,也是 Microsoft Fabric 的基礎元件,這是說其高效能且能夠處理大量數據作業的另一種方式。
數據 API 產生器會取代對資料庫執行一般 CRUD(建立、讀取、更新、刪除)作業的大部分自定義數據 API。 DAB 與語言、技術和架構無關。 它需要零個程式代碼和單一組態檔。 最棒的是,它完全免費,沒有高級訂閱,並且能在任何地方以無狀態方式運行。
數據 API 產生器是專為開發人員所設計。 DAB 具有跨平臺 CLI、Open Telemetry 和 Health Checks,並提供原生 OpenAPI,適用於 REST 端點的 Swagger,以及 GraphQL 端點的 Nitro(先前稱為香蕉蛋糕 Pop)。 其無狀態、與 Docker 友好之容器可以使用 EasyAuth、Microsoft Entra 身分識別,或企業選擇的任何 JSON Web 令牌 (JWT) 伺服器來加以保護。 它具有彈性的原則引擎、細微的安全性控制,以及自動將宣告數據傳遞至 SQL 會話內容。
數據 API 產生器 (DAB) 同時支援多個後端數據源,包括關係型和 NoSQL 來源。 DAB 也與 Application Insights 緊密整合。 組態檔可以反映資料庫中的關聯性,或定義支援熱重載的新虛擬配置檔。 GraphQL 端點允許在單一交易中執行多個巢狀的 Create 語句,而 REST 端點提供內部記憶體快取功能,並豐富支援類似 OData 的查詢字串關鍵字。
DAB 會以原生方式與 Azure Static Web Apps 整合。 它也適用於 Azure Container Apps、Azure Container Instances、Azure Kubernetes Services 和 Azure Web Apps for Containers。 DAB 可搭配這些服務使用,同時完全支援自定義的內部部署部署。
DAB 支援:
- SQL 伺服器
- Azure SQL
- 適用於 NoSQL 的 Azure Cosmos DB
- PostgreSQL
- 適用於 PostgreSQL 的 Azure 資料庫
- 適用於 PostgreSQL 的 Azure Cosmos DB
- MySQL
- 適用於 MySQL 的 Azure 資料庫
- Azure SQL 資料倉儲
DAB 可以將一般程式代碼基底減少三分之一、消除單元測試套件、縮短 CI/CD 管線,以及引進通常保留給最大開發小組的標準和進階功能。 它既安全又功能豐富,同時保持極為簡單,可擴展且易於觀察。
建築
此圖表會細分數據 API 產生器的所有元件之間的關聯性。
主要功能
- 支援 NoSQL 集合
- 支援關係型數據表、檢視和預存程式
- 支援多個同時的數據源
- 透過 OAuth2/JWT 提供驗證支援
- EasyAuth 和 Microsoft Entra Identity 的支援
- 使用已接收宣告的角色型權限授權
- 透過原則表達式的項目層級安全性
- REST 端點
- POST、GET、PUT、PATCH、DELETE
- 篩選、排序和分頁
- 記憶體內部快取
- OpenAPI 的支援
- GraphQL 端點
- 查詢和變更
- 篩選、排序和分頁
- 關係導航
- 動態架構
- 透過專用 CLI 輕鬆開發
- 透過資料庫連線來整合靜態網頁應用程式
- 開放原始碼和免費
開源
數據 API 產生器是開放原始碼,並在 MIT 授權下發行。 存放庫可在 Azure/data-api-builder 的 GitHub 上取得。