Atlas Data API [已弃用]
Data API 是一项托管服务,允许您使用标准 HTTPS 请求安全地处理存储在 Atlas 中的数据。Data API 并不直接连接到您的数据库。相反,API 是一项完全托管的中间件服务,位于集群和发送请求的客户端之间。
您可以使用 Data API 从任何支持 HTTPS 的平台连接到 MongoDB Atlas,其中包括:
网络浏览器
Web 服务器
CI/CD 管道
移动应用程序
物联网设备
您无需安装任何数据库驱动程序或偏好明确的库即可使用 Data API。相反,您可以发送如下所示的标准 HTTPS 请求:
curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/insertOne" \ -X POST \ -H "Content-Type: application/ejson" \ -H "Accept: application/json" \ -H "apiKey: TpqAKQgvhZE4r6AOzpVydJ9a3tB1BLMrgDzLlBLbihKNDzSJWTAHMVbsMoIOpnM6" \ -d '{ "dataSource": "mongodb-atlas", "database": "learn-data-api", "collection": "hello", "document": { "text": "Hello, world!" } }'
{ "insertedId": "63dc56ac74ddb86ed3eb8474" }
端点
Data API 支持两种类型的端点:
Data API 端点是自动生成的端点,每个端点代表一个 MongoDB 操作。您可以使用该端点在 MongoDB 数据源中创建、读取、更新、删除和聚合文档。
要了解详情,包括如何设置和调用端点,请参阅 Data API 端点。
自定义端点是由您编写的 Atlas Function 处理的应用程序特定 API 路由。您可以使用自定义端点来定义适合特定使用案例的操作。例如,您可以创建一个运行预定义聚合或与外部 Webhook 服务集成的端点。
要了解详情,包括如何创建和调用端点,请参阅自定义 HTTPS 端点。
数据 API 工作原理
Data API 请求可能类似于传统的数据库操作,例如 find
或 insertOne
,但 Data API 并不直接连接到您的数据库。相反,Data API 添加了额外的身份验证、授权和正确性检查,以确保仅以您允许的方式访问或修改数据。这使您可以从潜在易受攻击的客户端(例如 Web 应用)安全地访问 Atlas 中的数据。
对于每个传入请求,数据 API:
对调用用户进行身份验证。这可能涉及验证访问令牌,使用标头凭证登录,或根据您的配置直接分配特定的运行时用户。
授权请求。这可确保用户发送格式正确的请求,并有权根据您的端点授权方案执行请求的操作。
运行请求的操作。这可能涉及使用生成的端点在 Atlas 中读取或写入数据,或调用您编写的自定义函数。
对于在 Atlas 中读取或写入数据的请求,Data API 还会强制执行应用中定义的访问控制规则和文档模式。这意味着用户只能访问他们有权读取和写入的数据。包含无效写入操作的请求将失败。
向调用者返回 HTTPS 响应。响应包括生成的端点操作结果或从您自定义端点返回的任何数据。在请求中,您可以选择以 JSON 或 EJSON 格式接收响应。
何时使用 Data API
对于服务器应用程序,尤其是高负载和延迟敏感的使用案例,我们建议使用MongoDB驾驶员直接连接到Atlas 。 通过数据API端点调用的操作比通过驾驶员调用的相应MongoDB操作需要更长的时间才能完成。 此外,驱动程序对操作的执行方式提供了更大的灵活性和更好的控制。 要学习;了解详情,请访问 MongoDB驱动程序文档。
我们建议在以下情况下使用 Data API:
您想要从 Web 应用程序或您不信任的其他客户端运行 MongoDB 操作。
您不能或不想在服务器侧环境中管理 MongoDB 驱动程序。例如,某些边缘计算环境不支持数据库驱动程序或连接池化。
您想要开发一项新功能,并且更喜欢灵活的解决方案以便在客户端侧工作,然后再创建和完善 API 层。
您想将 Atlas 数据访问集成到联合 API 网关中。
您希望从 Atlas Device 软件开发工具包 (Atlas Device SDK) 当前不支持的环境中连接到 App Services,但不想使用驱动程序通过传输协议进行连接。
约束
以下限制适用于数据 API 请求和响应:
请求将在运行 300 秒后超时。
Data API 响应有效负载的大小限制为 350 MB。