出於好奇,我開始閱讀關於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. CAS可以無狀態嗎?
- 2. Graphql使用redux狀態以及Apollo
- 3. 這個Spring bean是無狀態的嗎?
- 4. BLL應該是無狀態的嗎?
- 5. Linq有無狀態會話的Nhibernate嗎?
- 6. Imagemaps和無狀態 - 可能嗎?
- 7. GraphQL支持Websockets嗎?
- 8. 無狀態JButton
- 9. Passport.js無狀態
- 10. Django無狀態?
- 11. 如何使用react-apollo確定突變加載狀態graphql
- 12. 無法解析從狀態「狀態」「」
- 13. 有狀態與無狀態Web服務
- 14. 無狀態的餅乾VS全狀態
- 15. JavaScript中無狀態的狀態
- 16. 有狀態和無狀態流處理
- 17. 無狀態自動推進狀態機
- 18. 具有無狀態的分層狀態
- 19. Keras - 有狀態vs無狀態LSTM
- 20. Admob狀態恢復爲無效狀態
- 21. Angular 2無狀態或有狀態?
- 22. 無狀態與有狀態的bean
- 23. HTTPS有狀態還是無狀態?
- 24. 我需要mongoose和graphql嗎?
- 25. 在無狀態ejbs中使用靜態方法有意義嗎?
- 26. 有狀態Web服務與(狀態Bean +無狀態WS)
- 27. 無法解析從狀態 '狀態2' '狀態1' 從一個狀態
- 28. Amf PHP無狀態?
- 29. Admob狀態無效
- 30. Ruby中的動態狀態機?狀態機必須是類嗎?
這裏有幾個問題:1.許多人稱爲REST的API不支持HATEOAS或鏈接,並且人們將其稱爲REST,2.您可以完全通過GET請求發送GraphQL查詢參數,可以像往常一樣緩存。 – stubailo
沒有這麼相關的問題:既然它們都基於HTTP,我仍然可以使用相同的Oauth 2.0和OpendID連接令牌的實現嗎? –
使用GET方法的好處;我發現一些不好的/舊的東西,表明一切都是通過POST。 – VoiceOfUnreason