出於好奇,我開始閱讀關於GraphQL的知識。根據this article上的示例,它看起來像REST API請求。它是無國籍的嗎?意味着它沒有請求,服務器沒有響應?如果是,那麼它是如何比REST API更輕的資源?GraphQL無狀態嗎?
1
A
回答
1
它是無狀態的嗎?
是的,只要服務器不需要任何客戶端狀態知識來正確解釋請求;所有必要的信息都包含在請求本身(標題和正文)中。
它看起來像REST API請求給我。
它可能沒有。它在超媒體約束上完全失敗(規範缺少對鏈接的任何引用,這是一個很大的暗示)。 「資源」有點混亂。
HTTP通常與REST,它使用 「資源」 作爲其核心概念相關聯。相比之下,GraphQL的概念模型是一個實體圖。因此,GraphQL中的實體不會被URL標識。
因此,您得到了許多不同的URI,指向實體圖的不同子集的表示,以及用於圖的所有修改的單個URI。在統一界面的後面,這些「資源」將全部使用單一路線實施。
REST is an architectural style,「選擇它們在候選架構上引發的屬性」。看起來好像GraphQL對不同的一組屬性感興趣;也就是說他們正試圖解決一個不同類型的問題。
2
GraphQL通常被認爲比REST更有效率,因爲它允許客戶端在一個請求中請求多個資源,這樣可以節省往返時間,並且還允許客戶端只過濾他們實際需要的字段。因此,在一天結束時,請求完成的方式看起來很相似,但更強大的查詢語言允許客戶端準確獲取所需的數據,而不再需要更多。
是的,它就像REST一樣是無狀態的。實際上有些人可能會說GraphQL滿足REST描述的許多原始要求。
相關問題
- 1. Graphql使用redux狀態以及Apollo
- 2. 這個Spring bean是無狀態的嗎?
- 3. Linq有無狀態會話的Nhibernate嗎?
- 4. BLL應該是無狀態的嗎?
- 5. GraphQL支持Websockets嗎?
- 6. Passport.js無狀態
- 7. Django無狀態?
- 8. Angular 2無狀態或有狀態?
- 9. 有狀態與無狀態Web服務
- 10. 無狀態的餅乾VS全狀態
- 11. 有狀態和無狀態流處理
- 12. 無法解析從狀態「狀態」「」
- 13. Keras - 有狀態vs無狀態LSTM
- 14. 具有無狀態的分層狀態
- 15. 有狀態Web服務與(狀態Bean +無狀態WS)
- 16. 無法解析從狀態 '狀態2' '狀態1' 從一個狀態
- 17. Admob狀態無效
- 18. Amf PHP無狀態?
- 19. 我需要mongoose和graphql嗎?
- 20. Ruby中的動態狀態機?狀態機必須是類嗎?
- 21. web的含義是無狀態的,http是無狀態協議?
- 22. 無狀態會話Bean vs無狀態Singleton
- 23. 實用程序/助手無狀態靜態類vs無狀態非靜態類
- 24. 可以重新使用416狀態碼的HTTP狀態碼嗎?
- 25. 狀態模式對只讀狀態有用嗎?
- 26. Redux翻轉卡狀態 - 它應該是有狀態組件嗎?
- 27. 狀態機和狀態圖表示相同嗎?
- 28. 可以在狀態機中進行狀態轉換嗎?
- 29. 我可以訪問狀態中的其他狀態變量嗎?
- 30. Wicket:無狀態頁面中的無狀態AJAX行爲,無序列化
這裏有幾個問題:1.許多人稱爲REST的API不支持HATEOAS或鏈接,並且人們將其稱爲REST,2.您可以完全通過GET請求發送GraphQL查詢參數,可以像往常一樣緩存。 – stubailo
沒有這麼相關的問題:既然它們都基於HTTP,我仍然可以使用相同的Oauth 2.0和OpendID連接令牌的實現嗎? –
使用GET方法的好處;我發現一些不好的/舊的東西,表明一切都是通過POST。 – VoiceOfUnreason