簡體   English   中英

GraphQL 和 rest api 有什么區別

[英]What's the difference between GraphQL and rest api

我想知道使用qraphQL而不是rest api 的所有原因是什么。

據我所知,可以使用graphQL在一個請求中發出一組 HTTP 請求,而不是發出多個請求(以減少 HTTP 請求)。

有沒有人可以再描述一下?

提前致謝。

互聯網上有許多文章詳細介紹了這個問題。 我想在這里做一個簡短的概述。

GraphQL 提供了幾個優於 REST 的優勢。

主要區別

REST接口中,一切都與資源有關。 例如,您可以通過調用這樣的端點來獲取 ID 為 25 和 ID 83 的資源“car”:

GET /cars/25
GET /cars/83

請注意,您必須如何調用接口兩次。 端點(“汽車”)和您的資源是耦合的。

GraphQL 中,您可以使用以下示例查詢通過一次調用獲得兩輛車:

GET /api?query={ car(ids: [25, 83]) { model, manufacturer { address } } }

請注意,您甚至如何指定要獲取的確切數據(型號、制造商及其地址)。 與 REST 相比,端點(“api”)不再是特定於資源的。

一些優勢

  • 正如問題中已經提到的,您可以在 GraphQL 查詢的幫助下減少 HTTP 操作的數量(避免獲取不足)。
  • 通過准確指定要獲取的數據,您可以減少通過接口傳輸的開銷(避免過度獲取)。
  • 通過在 GraphQL 中使用靈活的查詢,您更有可能避免將接口使用者與生產者耦合得太緊,因為您沒有將特定使用者的要求准確地實現到具有定義端點的 REST 接口中。
  • 因為每個消費者都准確地指定了 GraphQL 需要哪些數據,所以您可以在后端收集有關數據使用情況的更詳細的統計信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM