DOCS

為什麼選擇 GraphQL

了解我們為什麼建議透過 GraphQL 而不是 REST 進行整合。

在 Zonos,我們提供兩種主要類型的 API 供整合使用:GraphQL 和 REST。雖然 REST API 已經存在更久,且對許多人來說可能更熟悉,但我們已轉向 GraphQL 以提供更多靈活性和更快的創新速度。雖然兩者仍然被支援,但本指南說明了為什麼 GraphQL 不僅是我們整合的未來,也是業界整合的未來,且是今天滿足您需求的更強大工具。

什麼是 GraphQL? 

GraphQL 是一種與 API 通訊的替代方式,非常適合複雜的資料結構和在其基礎上建立介面。與將資料視為獨立的、獨立的片段不同,GraphQL 展示了資料片段如何連接和相互關聯,使得詢問和接收資訊變得容易。

想像 GraphQL 是一種查詢語言,讓您能像直接與資料庫對話一樣與 API 通訊。使用 GraphQL 讓您能最接近資料庫,讓您能挑選想要的資料以及如何取得,提供巨大的效能優勢。

GraphQL 由 Facebook 創建以解決複雜資料結構的擴展問題。由於他們成功採用了它,越來越多的公司開始認識到將 GraphQL 用於其 API 的好處。

已經了解 REST?您會發現 GraphQL 很熟悉。

GraphQL API 比您想像的更容易使用。如果您習慣於使用 REST API,以下是 REST 的核心概念如何轉換為 GraphQL。

功能RESTGraphQL
端點請求被發送到多個端點以進行不同的操作所有請求都被發送到單一端點(例如 /graphql)
資料檢索在特定端點上使用 GET 方法來檢索資料使用 查詢 來請求確切所需的資料,減少過度取得或不足取得
資料修改/操作使用 HTTP 方法(如 POST、PUT、PATCH 或 DELETE)來修改或處理資料。使用 變更 來執行操作(例如建立當事方、計算著陸成本)
回應格式固定的回應格式返回所有預定義的欄位,無論是否需要靈活的回應允許指定要包括的確切欄位,減少不必要的資料傳輸(如果這種靈活性感覺複雜,只需在我們的文件中使用預先編寫的查詢範例以獲得 RESTful 體驗)
資料連接通常需要多個請求來取得相關資料嵌套查詢能夠在單一請求中檢索相關資料(例如,當事方詳細資料和出貨項目一起)。使用者也可以建立工作流程以在單一 GraphQL 請求中管理多個變更,減少複雜性並提高效率

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 獨有功能的範例:

  • 包括定價
  • Labels API
  • 新的結帳和 Hello
  • API 回應中的箱子大小
  • 儀表板報告
  • 如果可能的話,能夠要求 DDP 報價,但如果該國家提供該服務等級時 DDP 不可用則仍然返回 DDU 報價
  • 關稅、稅款和費用的詳細明細(項目級資訊、特定費用)——儀表板由 GraphQL 供電,並為所有商店顯示此資料,但 REST API 回應不包括此詳細級別
  • 測試模式(敬請期待)
預約演示

這個頁面有幫助嗎?


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