什么是 Azure 数据库的数据 API 生成器?

数据 API 生成器 (DAB) 通过数据库提供 REST API。 它还提供 GraphQL API。 它不仅支持 SQL Server,还支持 Azure SQL 数据库、Azure Cosmos DB、PostgreSQL、MySQL 和 SQL 数据仓库。 DAB 在任何云或本地运行,它是开源的,可以免费使用。 它是 Microsoft Fabric 的安全、功能丰富的基础组件,也就是说,它具有高性能并能够处理大规模数据操作。

数据 API 生成器替代了大多数执行泛型 CRUD(创建、读取、更新、删除)操作的自定义数据 API。 DAB 独立于语言、技术和框架。 它需要零个代码和单个配置文件。 最棒的是,它确实是免费的,没有高端版本,可以在任何地方无状态地运行。

数据 API 生成器吉祥物的插图,这是一个带有云徽标的构造帽的数据库。

数据 API 生成器专为开发人员设计。 DAB 具有跨平台 CLI、Open Telemetry 和运行状况检查功能,包括原生 OpenAPI、用于 REST 终结点的 Swagger 和用于 GraphQL 终结点的 Nitro(以前称为 Banana Cake Pop)。 可以使用 EasyAuth、Microsoft Entra Identity 或企业选择的任何 JSON Web 令牌(JWT)服务器来保护其无状态且对 Docker 友好的容器。 它具有灵活的策略引擎、精细的安全控制,并自动将声明数据传递到 SQL 会话上下文。

数据 API 生成器 (DAB) 同时支持多个后端数据源,包括关系数据源和 NoSQL 源。 DAB 还与 Application Insights 无缝集成。 配置文件可以反映数据库中的关系,也可以定义支持热重载的新虚拟配置文件。 GraphQL 终结点允许单个事务中的多个嵌套 Create 语句,而 REST 终结点具有内存中缓存和对类似 OData 的查询字符串关键字的丰富支持。

DAB 本地集成到 Azure 静态 Web 应用中。 它还适用于 Azure 容器应用、Azure 容器实例、Azure Kubernetes 服务和用于容器的 Azure Web 应用。 DAB 适用于这些服务,同时完全支持自定义本地部署。

DAB 支持:

  • SQL Server
  • Azure SQL
  • Azure Cosmos DB(用于NoSQL)
  • PostgreSQL
  • 适用于 PostgreSQL 的 Azure 数据库
  • Azure Cosmos DB(适用于PostgreSQL)
  • MySQL
  • 适用于 MySQL 的 Azure 数据库
  • Azure SQL 数据仓库

DAB 可以将典型的代码库减少三分之一,消除单元测试套件,缩短 CI/CD 管道,并引入通常为最大的开发团队保留的标准和高级功能。 它的安全性和功能丰富,同时保持令人难以置信的简单、可缩放和可观测性。

建筑

此关系图分解了数据 API 生成器的所有组件之间的关系。

展示数据 API Builder 体系结构概述的关系图。该图包括架构文件、抽象、配置文件和生成的 GraphQL 和 REST 接口。

主要功能

  • 支持 NoSQL 集合
  • 支持关系表、视图和存储过程
  • 支持多个同时数据源
  • 支持通过 OAuth2/JWT 进行身份验证
  • 对 EasyAuth 和 Microsoft Entra Identity 的支持
  • 使用收到的声明进行基于角色的授权
  • 通过策略表达式实现项级安全性
  • REST 终结点
    • POST、GET、PUT、PATCH、DELETE
    • 筛选、排序和分页
    • 内存中缓存
    • 对 OpenAPI 的支持
  • GraphQL 终结点
    • 查询和变更
    • 筛选、排序和分页
    • 关系导航
    • 动态架构
  • 通过专用 CLI 轻松开发
  • 通过数据库连接实现静态 Web 应用的集成
  • 开放源代码和免费

开源

数据 API 生成器是开放源代码,并且根据 MIT 许可证发布。 存储库在 Azure/data-api-builder 的 GitHub 上提供。