GraphQL入門:GraphQL與REST區別的不同舉例 - Sithira
當使用REST API標準時, Facebook 注意到其新聞源需要呼叫多個API端點才能檢索所需的所有資料。因此,他們正在尋找一種以可靠的方式在移動裝置上以良好效能載入新聞源的方法。
GraphQL是由於這項努力而發明的。它是一種“新查詢語言,為REST提供了更有效和強大的替代方法”。它是可以用任何程式語言實現的規範。
一個簡單的應用程式需要在螢幕上顯示使用者名稱,建立的帖子以及使用者的最後3個關注者。
如果我們通過REST執行此任務,則可能需要3個端點,例如:
- GET /users/{id}
- GET /users/{id}/posts
- GET /users/{id}/followers
GraphQL沒有多個端點,而是公開了一個端點,並使用它訪問伺服器上可用的資料。從GraphQL返回的資料的結構是不固定的。客戶端從伺服器發出的資料請求是通過query,類似於REST中的GET呼叫
query { User(id: "ek33orffi4") { name age posts { title } followers(last: 3){ name } } } |
該查詢將產生使用者的名稱,建立的帖子標題和最後3個關注者。在此示例中,“query” 根欄位和資料之後是有效負載。該查詢以下面所述的JSON格式返回響應。
{ "data": { "User":{ "name": "Sithira", "posts":[ {"title" : "GraphQL history"} , {"title" : "How to use work form home effectively"} ], "followers":[ {"name" : "Kate"}, {"name" : "Jane"}, {"name" : "David"} ] } } } |
GraphQL如何以簡單的方式工作?
- 客戶端傳送查詢請求以從伺服器檢索所有人員的姓名。
- 然後,伺服器使用模式驗證請求,並根據合同驗證“查詢型別”和“人員型別”中的資料。
- 如果通過了驗證,則伺服器將讀取查詢的有效負載並從資料來源(資料庫,記憶體中)中獲取所需的資訊,並將響應以JSON格式返回給客戶端。解析程式負責為每個請求的欄位檢索正確的資料。
點選標題見原文,包含如何自動化測試GraphQL
相關文章
- REST與GraphQL的爭論REST
- GraphQL 快速入門【5】GraphQL 示例
- GraphQL入門
- React+GraphQL入門React
- GraphQL 入門簡介
- 【譯】GraphQL vs. RESTREST
- GraphQL API vs REST APIAPIREST
- 【CuteJavaScript】GraphQL真香入門教程JavaScript
- GraphQL 從入門到實踐
- GraphQL從入門到放棄
- GraphQL 快速入門【1】簡介
- GraphQL SPQR和Spring Boot入門 | baeldungSpring Boot
- 為什麼REST比GraphQL更好? - TomaszJaskuλaREST
- GraphQL搭配MongoDB入門專案實戰MongoDB
- 精讀《REST, GraphQL, Webhooks, & gRPC 如何選型》RESTWebHookRPC
- GraphQL —— 標量型別型別
- Spring Boot GraphQL 實戰 01_快速入門Spring Boot
- Graphql學習(一)-GraphQL介紹
- REST將會過時,而GraphQL則會長存REST
- GraphQL Vs. REST? API 開發方法的誠實比較 | transpositRESTAPI
- rails graphql的使用AI
- 一種不錯的 BFF Microservice GraphQL/REST API 層的開發方式ROSRESTAPI
- 《GraphQL 名詞 101:解析 GraphQL 的查詢語法》【譯】
- GraphQL學習:Github GraphQL API v4初探GithubAPI
- GraphQL案例演示
- GraphQL & Relay 初探
- Graphql 調研
- Flutter x GraphQLFlutter
- GraphQL 漸進學習 05-graphql-resolvers-union-聯合的使用
- 微服務中GraphQL與RESTful比較微服務REST
- GraphQL初體驗,Node.js構建GraphQL API指南Node.jsAPI
- GraphQL & Relay 實戰
- Vue + GraphQL初試Vue
- 前端應該知道的GraphQL前端
- graphql-normalizr: 儲存規範化GraphQL響應資料ORM
- GraphQL-Go-onepieceAPI:用Go語言和GraphQL開發的海賊王APIGoAPI
- GraphQL-前端開發的利劍與橋樑前端
- 2019 GraphQL學習指南