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