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

数据 API 生成器替换对数据库执行 CRUD (创建、读取、更新、删除) 操作的任何自定义 API。 DAB 是跨平台、开源的,独立于语言、技术和框架。 它需要零代码和单个配置文件。 最重要的是,它是免费的,没有高级层,可以在任何云中运行。

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

数据 API 生成器专为开发人员设计。 数据 API 生成器具有跨平台 CLI、本机 OpenAPI、适用于 REST 终结点的 Swagger 和用于 GraphQL 终结点的 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 应用集成。 DAB 还适用于 Azure 容器应用、Azure 容器实例、Azure Kubernetes 服务和用于容器的 Azure Web 应用。 DAB 可与这些服务配合使用,同时完全支持自定义的本地部署。

DAB 支持:

  • SQL Server
  • Azure SQL
  • Azure Cosmos DB for NoSQL
  • PostgreSQL
  • Azure Database for PostgreSQL
  • Azure Cosmos DB for PostgreSQL
  • MySQL
  • Azure Database for MySQL
  • Azure SQL 数据仓库

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

体系结构

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

显示数据 API 生成器体系结构概述的关系图。该关系图包括架构文件、抽象、配置文件和生成的 GraphQL+REST 终结点。

关键功能

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

开源

数据 API 生成器是开源的,在 MIT 许可证下发布。 存储库在 GitHub 上的 azure/data-api-builder 上可用。