Docs 菜单

Docs 主页Atlas App Services

Atlas Data API

在此页面上

  • 端点
  • 数据 API 工作原理
  • 何时使用 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 端点。

Data API 请求可能类似于传统的数据库操作,例如 findinsertOne,但 Data API 并不直接连接到您的数据库。相反,Data API 添加了额外的身份验证、授权和正确性检查,以确保仅以您允许的方式访问或修改数据。这使您可以从潜在易受攻击的客户端(例如 Web 应用)安全地访问 Atlas 中的数据。

对于每个传入请求,数据 API:

  1. 对调用用户进行身份验证。这可能涉及验证访问令牌,使用标头凭证登录,或根据您的配置直接分配特定的运行时用户。

  2. 授权请求。这可确保用户发送格式正确的请求,并有权根据您的端点授权方案执行请求的操作。

  3. 运行请求的操作。这可能涉及使用生成的端点在 Atlas 中读取或写入数据,或调用您编写的自定义函数。

    对于在 Atlas 中读取或写入数据的请求,Data API 还会强制执行应用中定义的访问控制规则和文档模式。这意味着用户只能访问他们有权读取和写入的数据。包含无效写入操作的请求将失败。

  4. 向调用者返回 HTTPS 响应。响应包括生成的端点操作结果或从您自定义端点返回的任何数据。在请求中,您可以选择以 JSON 或 EJSON 格式接收响应。

对于服务器应用程序,尤其是高负载和延迟敏感的使用案例,我们建议使用 MongoDB 驱动程序直接连接到 Atlas。通过数据 API 端点调用的操作比通过驱动程序调用的相应 MongoDB 操作需要更长的时间才能完成。此外,驱动程序对操作的执行方式提供了更大的灵活性和更好的控制。要了解更多信息,请访问MongoDB 驱动程序文档。

我们建议在以下情况下使用 Data API:

  • 您想要从 Web 应用程序或您不信任的其他客户端运行 MongoDB 操作。

  • 您不能或不想在服务器侧环境中管理 MongoDB 驱动程序。例如,某些边缘计算环境不支持数据库驱动程序或连接池化。

  • 您想要开发一项新功能,并且更喜欢灵活的解决方案以便在客户端侧工作,然后再创建和完善 API 层。

  • 您想将 Atlas 数据访问集成到联合 API 网关中。

  • 您希望从 Atlas Device SDK 当前不支持的环境连接到 App Services,并且不想使用驱动程序通过传输协议进行连接。

以下限制适用于 Data API 请求和响应:

  • 请求将在运行时间达到300秒后超时。

  • Data API 响应负载的大小限制为350 MB。

← 边缘服务器 MongoDB API 支持