REST與GraphQL的爭論
1. 我不介意REST與GraphQL的爭論,但是如果你看到像“你有過度獲取/不足獲取(over/under-fetching)的REST”這樣的論點,這對REST來說不是問題,那就是糟糕的API設計。辯論需要以真正的問題為中心 就像有人抱怨SQL有一個“over/under-fetching”的問題,因為開發人員只寫了一個SQL語句:“SELECT * FROM <OneTable>”
2. 我認為關鍵是可以*設計一個支援查詢粒度的REST API(例如,欄位選擇器,擴充套件相關模型等),但是必須自己設計和構建它。
3. 其實我最喜歡的是使用兩者。當與CQRS一起使用時,我有命令API的REST和查詢API的GraphQL。它們是分開的,因為它們完成不同的工作並具有不同的工作負載和複製因子。
4. 我自己也是一個REST粉絲,但事實是,graphQL可變性非常適合於命令。
5. 我喜歡並開發REST API,但我不同意over fetching過度獲取資訊=破碎有缺陷。這取決於業務案例,也就是說,自己是唯一的消費者?還是第三方也會使用此API端點?他們是否需要我新增一些我可能不需要的其他資訊?
6. 如果over fetching過度獲取的資料大小不顯著,我沒有看到問題。如果API變得龐大且管理起來很麻煩,我確實看到它失去控制。其他資料只是放入模型與最佳化等等......
7. 支援GraphQL的人認為REST是糟糕的API設計的原因。
8. 辯論應該圍繞正規化本身的差異。REST是一種以資源為中心(又稱為關係型DB),側重於狀態,而不是操作。GraphQL最初解決了一個特定的查詢問題,並且新增了變動作為一種思考(RPC風格)。
9. HTML有連結和表單,這些是操作。REST中沒有任何東西會迫使您以關聯式資料庫的方式進行思考
10. RESTful規定使用類似於CRUD的HTTP動詞,如GET,POST,PUT和DELETE。
11. REST是針對資源,但沒有規定任何資源如何設計。將資源與DB記錄等同起來是不正確的假設。在實踐中,我幾乎*從不*使用PUT / DELETE因為我不能輕易保證冪等性或符合HTTP約束。
相關文章
- GraphQL入門:GraphQL與REST區別的不同舉例 - SithiraREST
- 【譯】GraphQL vs. RESTREST
- GraphQL API vs REST APIAPIREST
- Karl Rove和Dick Cheney加入了REST爭論REST
- 安息吧 REST API,GraphQL 長存RESTAPI
- 安息吧,REST API,GraphQL 長存RESTAPI
- [譯] REST API 已死,GraphQL 長存RESTAPI
- 為什麼REST比GraphQL更好? - TomaszJaskuλaREST
- 軟體開發者:豬與雞的爭論?
- GraphQL分享理論篇
- Java 理論與實踐: 關於異常的爭論Java
- 精讀《REST, GraphQL, Webhooks, & gRPC 如何選型》RESTWebHookRPC
- [譯] 將現有的 API 從 REST 遷移到 GraphQLAPIREST
- REST將會過時,而GraphQL則會長存REST
- GraphQL Vs. REST? API 開發方法的誠實比較 | transpositRESTAPI
- 一種不錯的 BFF Microservice GraphQL/REST API 層的開發方式ROSRESTAPI
- 不要進行無謂的OOP與FP爭論 - Mathias VerraesOOP
- REST實戰討論組FAQREST
- Epic VS 蘋果 Part 2:爭論焦點與Xbox的入場蘋果
- 乙女遊戲:爭論背後遊戲
- 是否要做Code Review?與BAT資深架構師爭論之後的思考ViewBAT架構
- 大資料爭論:批處理與流處理的C位之戰大資料
- 關於模式爭論的一點點思考模式
- 關於Java的取時間方法的爭論Java
- 微服務中GraphQL與RESTful比較微服務REST
- GraphQL-前端開發的利劍與橋樑前端
- HTTPS與Django REST FramworkHTTPDjangoREST
- 一句話的翻譯引發的爭論
- Django REST framework的請求與響應DjangoRESTFramework
- 隱於網路爭論之下,Scott眼中的Alec
- 關於敏捷的一次內部爭論敏捷
- 蘋果與微信的打賞之爭 爭的就是收稅權蘋果
- rails graphql的使用AI
- REST實戰討論組的文件資料在什麼地方?REST
- Graphql學習(一)-GraphQL介紹
- GraphQL 快速入門【5】GraphQL 示例
- GraphQL.js 與服務端互動的新方式JS服務端
- GraphQL 碰撞 Apache APISIX,提升 API 領域的安全與效能ApacheAPI