还有更多REST技巧
生活随笔
收集整理的這篇文章主要介紹了
还有更多REST技巧
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在以前的博客文章中,我介紹了一些實現REST體系結構的想法和技巧。 在這篇文章中,我將介紹更多的想法和技巧。
快取
- 緩存是原始論文的很大一部分。 見5.1.4節
- 策略包括驗證( 客戶端檢查它是否具有最新版本 )和到期( 客戶端認為它具有最新版本直到指定時間 )。
- 到期日:
- Expires標頭告訴客戶端資源何時到期。
- 緩存控制
- 驗證方式
- Etag –資源的唯一版本。
控制器API
- 當某些東西完全適合CRUD操作時,請考慮使用Controller API
處理日期
- 使用ISO-8601作為日期-更好地進行自然排序,處理時區,語言環境中的語言以及大多數編程語言的支持
- 接受任何時區,因為世界上任何人都可以調用您的API
- 存儲在UTC中 ,而不是服務器所在的時區中。 持續時不應有偏移。
- 返回UTC。 允許客戶根據需要調整其時區
- 如果您不需要,請不要使用時間。 如果僅日期就足夠,則僅保留日期。 這意味著時區復雜性將消失。
頭
- HEAD操作應返回響應頭
標頭
- 始終返回有用的標題。 考慮:
- 內容類型
超媒體(優勢)
- 減少耦合
- 鏈接的格式一致=>更干凈的客戶端代碼
- 開發人員的生產力:API更易于瀏覽
- 更輕松地以更精細的方式介紹服務
- 代碼更易于調試-消息始終具有通過自我鏈接創建消息的URL
超媒體(選擇)
- HAL –減少地址耦合
- SIREN –減少地址和動作的耦合
- Collection + JSON (CJ)–減少地址,動作和對象的耦合
等冪的
- 可以多次調用并返回相同結果
- OPTIONS,GET,HEAD,PUT和DELETE都是冪等的
長時間運行的請求
- 某些操作需要很長時間。 在這種情況下,請考慮返回位置字段設置為URL的202,客戶端可以輪詢該URL以檢查操作進度。
不允許的方法
- 如果API僅支持GET,則對于任何PUT,POST,DELETE等都應返回405
必須忽略原則
- 客戶端應該忽略他們不感??興趣的數據。這使得API向后兼容變得更加容易。 如果API返回了額外的數據,而某些客戶端并不期望它們,他們將忽略它。
不能接受的
- 當資源不支持特定的媒體類型時,它應返回406(見Masse,規則:406(“不可接受”)),當無法提供所請求的媒體類型時
選項
- 選項應返回資源上可用的操作
部分更新
- 使用PATCH處理部分更新
詢問
- URI的查詢組件應用于過濾集合
資源創造
- 成功創建資源后,應返回201
- 位置標頭應指示獲取資源的URL。
安全
- 如果操作不修改資源,則被認為是安全的
- 選項,GET和HEAD是安全的
自我鏈接
- 響應正文應始終包含一個自我鏈接-用于返回資源的URL。
單數還是復數?
- 對于只有一個文檔類型的資源,請使用“單個”。 例如:/ humans / 12343343 / head
- 否則復數
翻譯自: https://www.javacodegeeks.com/2018/05/and-some-more-rest-tips.html
總結
以上是生活随笔為你收集整理的还有更多REST技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 育碧计划关闭其伦敦工作室,54 名员工受
- 下一篇: 用EnumMaps映射枚举键