DOCS

为什么选择 GraphQL

了解为什么我们建议通过 GraphQL 而非 REST 进行集成。

Zonos 提供两种主要 API 类型用于集成:GraphQL 和 REST。虽然 REST API 的历史更悠久,可能对许多人来说更加熟悉,但我们已经转向 GraphQL,以实现更大的灵活性和更快速的创新。虽然两者仍然都受支持,但本指南解释了为什么 GraphQL 不仅是我们集成的未来,也是一般集成的未来,并且是今天满足您需求的更强大工具。

什么是 GraphQL? 

GraphQL 是一种与 API 通信的替代方式,非常适合复杂的数据结构和在其基础上构建界面。与将数据视为单独的独立部分不同,GraphQL 展示了数据片段如何连接和相互关联,使得询问和接收信息变得容易。

将 GraphQL 视为一种查询语言,允许您与 API 交互,就像直接与数据库交互一样。使用 GraphQL 可以让您尽可能接近数据库,允许您选择所需的数据以及获取方式,提供巨大的性能优势。

GraphQL 由 Facebook 创建,以解决复杂数据结构扩展的问题。由于 Facebook 成功采用了它,越来越多的公司开始认识到使用 GraphQL 来构建 API 的好处。

已经了解 REST?GraphQL 会很熟悉。

GraphQL API 比您想象的更容易使用。如果您习惯于使用 REST API,以下是 REST 的核心概念如何转换为 GraphQL。

特性RESTGraphQL
端点向不同的端点发出请求以执行不同的操作所有请求都发送到单个端点(例如 /graphql)
数据检索在特定端点上使用 GET 方法检索数据使用 查询 来请求所需的确切数据,减少过度获取或获取不足
数据修改/操作使用 POST、PUT、PATCH 或 DELETEHTTP 方法 修改或处理数据使用 mutations 执行操作(例如,创建参与方、计算落地成本)
响应格式固定的响应格式返回所有预定义字段,无论是否需要灵活的响应允许指定要包含的确切字段,减少不必要的数据传输(如果此灵活性感觉复杂,只需在我们的文档中使用预先编写的查询示例即可获得 RESTful 体验)
数据连接通常需要多个请求来获取相关数据嵌套查询使得在单个请求中检索相关数据成为可能(例如,参与方详细信息和发货物品一起)。用户还可以构建工作流以在单个 GraphQL 请求中管理多个 mutations,减少复杂性并提高效率

GraphQL 的优势

一个类比 

想象您在一家餐厅,菜单让您完全按照喜欢的方式订购菜肴,而另一家餐厅您只能从套餐中选择。GraphQL 就像第一家餐厅:

  • 获得您想要的确切内容: 使用 GraphQL,您可以要求您需要的确切数据,不多不少。想象您只想要菜肴的名称和价格,而不是整个成分列表。使用 REST API,您必须获得整个菜肴详细信息并忽略不需要的部分。
  • 组合自定义菜肴: 我们的 GraphQL API 可以轻松组合以创建更自定义的解决方案,类似于自助餐风格的餐厅,您可以创建完全按照您的需要的独一无二的菜肴,使用他们已有的食材。相比之下,REST API 就像一家有预制商品的面包店装在篮子里——您只能订购已经创建的内容,您不能选择只带回您想要的片段。
  • 等待更少: 由于您可以在单个请求中获得您需要的所有信息,就像要求您的服务员一次性带来您的开胃菜、主菜和甜点,而不是在每道菜之间等待。大多数 REST API 需要您发送多个请求以获取不同的信息片段。
  • 轻松更改订单: 如果您应用的数据需求发生变化,GraphQL 使其更容易调整。您只需更改您需要的查询。使用 REST,您可能需要等待厨房(后端)为菜单创建新的餐点(端点),这需要更多时间。

GraphQL 为获取数据提供了比 REST API 更灵活、更高效和更简单的方式,尤其是当您的需求变化或增长时。

Zonos 如何使用 GraphQL 

在过去几年现代化我们的平台时,Zonos 选择了使用 GraphQL 而非 REST 为我们的 API 构建新功能。我们决定这样做是因为我们的数据很复杂且相互关联,就像导致 Facebook 创建 GraphQL 的数据一样。这种复杂性使得构建可扩展的 REST API 变得困难,因为开发人员需要获取和使用数据的方式在实现之间差异很大,而 REST 并不灵活。

GraphQL 通过允许实现我们 API 的开发人员选择所需的确切数据以及获取方式来整洁地解决这个问题。这允许他们将其适配到他们的工作流中,而无需 Zonos 为每种情况进行自定义工作(当他们等待时)。

使用 GraphQL 和我们平台中现代化的综合结果使我们的 API 性能更强,使集成 Zonos 到您的系统更快,并使 Zonos 能够更快速地交付新功能。

更好的功能

Zonos 持续开发新功能,GraphQL 是首个(通常也是唯一)接收这些更新的。相比之下,我们的 REST API 被认为是生命周期结束,无法访问许多新功能。

仅限于 GraphQL 的功能示例:

  • Inclusive pricing
  • 标签 API
  • 全新的 Checkout 和 Hello
  • API 响应中的箱子尺寸
  • Dashboard 报告
  • 如果可能,请求 DDP 报价的能力,但如果 DDP 对该国家和该服务级别不可用,仍然返回 DDU 报价
  • 关税、税费和费用的详细分解(项目级别信息、具体费用)——Dashboard 由 GraphQL 支持并为所有商店显示此数据,但 REST API 响应不包含此详细程度
  • 测试模式(即将推出)
预约演示

这个页面有帮助吗?


获取支持·法律文件·© 2026 Zonos