微软宣布Data API Builder for Azure Cosmos DB正式发布
微软近日宣布了Data API Builder for Azure Cosmos DB的正式发布。这一开源项目为Azure数据库和本地存储提供了REST和GraphQL端点。
主要功能与特点
Data API Builder(DAB)旨在简化在Azure Cosmos DB集合上暴露GraphQL端点的过程,支持关系查询、过滤和突变操作(包括补丁操作)。DAB提供了跨平台CLI、原生OpenAPI支持、Swagger用于REST端点,以及Banana Cake Pop用于GraphQL端点。
应用场景
Azure Cosmos DB产品经理Sajeetharan Sinnathurai提到了一些使用场景:
- 无论是构建数据交换中心、开发移动应用,还是操作Azure数据库,Data API Builder都能提供支持。它能无缝集成各种后端存储,从NoSQL到关系数据库,并能轻松管理多个数据库。
技术架构
DAB是一个跨平台且与语言无关的工具,旨在通过单个配置文件替换任何执行CRUD操作的自定义API。它提供了重试策略、全面的日志记录、内存缓存以及映射列和过滤结果的能力。DAB是一个使用C#编写的ASP.NET项目,使用了ChilliCream的Hot Chocolate用于GraphQL,以及FusionCache用于内存缓存。
开发背景
微软高级产品经理Jerry Nixon在项目正式发布公告中写道:
- 近三年前,Data API Builder只是一个梦想。我们如何减少开发者在客户端应用程序中访问数据库的摩擦?我们创建了Data API Builder来解决这个问题,提供安全且功能丰富的REST和GraphQL端点,无需编写代码。
容器化与部署
DAB基于容器,允许开发者在创建GraphQL端点的同时,保持精细且灵活的安全功能。Sinnathurai补充道:
- DAB是一个标准的Docker友好型容器,完全无状态且可扩展。你可以在自己的环境或云中运行它,运行一个或多个容器来连接单个或多个数据库。
与Azure服务的集成
DAB支持自定义本地部署,并原生集成Azure Static Web Apps,同时兼容Azure Container Apps、Azure Container Instances、Azure Kubernetes Service和Azure Web Apps for Containers。
未来展望
一些开发者希望添加对Cosmos DB for MongoDB的支持。微软首席产品经理Arun Vijayraghavan在评论中提到:
- DAB项目的突出之处在于它将数据库更接近边缘提供商。例如,Cloudflare、Vercel、Netlify等边缘提供商基于Javascript V8或Deno,这些平台没有完整的API集来与数据库交互,因此最佳解决方案是使用REST API访问数据库。
开源与许可
Data API Builder项目是免费的,没有高级版本,并在GitHub上以MIT许可证提供。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。