我們試圖遵循一種非常嚴格的REST服務習慣用法,但是我們遇到了兩種客戶端需要不同表示的相同資源的情況。一個是前端,他們會更喜歡只有他們需要的字段和更扁平的結構(用於性能)的最小資源,另一個需要我們的數據存儲中的所有字段都是嵌套結構。在給定規範URL的情況下,REST服務處理這種情況的慣用方式應該與訪問相同資源的方式相同。我們考慮在請求中添加預測,但是由於這種結構仍然是相當嵌套的,這會導致JS客戶端的性能問題,因爲它必須遍歷結構並將其扁平化,這在資源數量上可能相當昂貴回報很高。具有多個視圖的REST資源
1
A
回答
4
我會建議有兩種選擇:
1)如果查詢字段可以改變,你可以指定你想要的查詢參數字段(結構)。這在REST API中很常見。沒有規範,你會返回一個默認的字段列表。什麼應該是默認值,取決於服務,但一般而言,最小集合會使性能更好地默認。爲了避免列出所有字段,可以使用類似fields=all
的東西。在你的情況下,structure
可能更有意義。
2)您可以在自定義請求標頭中對字段請求進行編碼。有人會認爲這是更爲穩定的方法,因爲您只修改響應的格式而不是調用基礎操作,因此URL應該相同。
實際上,大多數服務更喜歡第一種方法,因爲它被認爲更容易接近。
就我個人而言,我認爲這是一個邊緣選擇。我更喜歡在Accept
標頭中對返回媒體(JSON,HTML,XML等)進行編碼。任何體面的開發人員都有一些工具可以很容易地設置標題,但根據我的經驗,查詢參數成語更爲流行,並且對於約定有很多要說的。
請注意,如果您使用標頭方法,則應該不要使用結構/字段規範的Accept
標頭。如果你走這條路線,請添加自己的標題。
相關問題
- 1. 具有關係的REST接口資源
- 2. 具有多態性資源
- 3. 管理視圖狀態多重合成REST資源
- 4. 選擇在REST創建多個資源
- 5. REST設計API訪問多個資源
- 6. 「Right」REST URL獲取所有資源中的所有資源?
- 7. Twitter Rest資源
- 8. 資源的REST URL
- 9. REST中資源的多編輯
- 10. CakePHP:多級別的REST API資源
- 11. 具有多個視圖的UIViewcontroller
- 12. 具有多個視圖的iPad UISplitViewController
- 13. 具有多個視圖的Android Listview
- 14. 具有多個表單的視圖
- 15. 具有多個視圖的塊轉換
- 16. Ios單個xib具有多個視圖
- 17. REST API - 返回具有不同數據的資源列表
- 18. 多個資源
- 19. 單個資源和多個資源
- 20. 下面的資源哪個URL模式更具REST風格?
- 21. 具有多個資源的XACML策略具有多個規則和多個操作
- 22. REST API - 單個資源的更新改變多個其他
- 23. Magento rest api資源
- 24. REST資源測試
- 25. 混合資源(REST)和非資源
- 26. REST - 鏈接資源,其他資源
- 27. 具有多個操作,主題和資源的XACML3策略
- 28. 具有相同編號的多個資源
- 29. 具有多個帖子資源的Restlet服務
- 30. 具有多個值的資源(.resx)文件
很酷,我沒有想過標題。 – shmish111