<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
API(Application Programming Interface),顧名思義:是一組程式設計介面規範,使用者端與伺服器端通過請求響應進行資料通訊。REST(Representational State Transfer)表述性狀態傳遞,決定了介面的形式與規則。RESTful是基於http方法的API設計風格,而不是一種新的技術.
對介面開發提供了一種可以廣泛適用的規範,為前端後端互動減少了介面交流的口舌成本,是約定大於設定的體現。通過下面的設計,大家來理解一下這三句話。
當然也不是所有的介面,都能用REST的形式來表述。在實際工作中,靈活運用,我們用RESTful風格的目的是為大家提供統一標準,避免不必要的溝通成本的浪費,形成一種通用的風格。就好比大家都知道:伸出大拇指表示“你很棒“的意思,絕大部分人都明白,因為你瞭解了這種風格習慣。但是不排除有些地區伸出大拇指表示其他意思,就不適合使用!
REST 通過 URI 暴露資源時,會強調不要在 URI 中出現動詞。比如:
不符合REST的介面URI | 符合REST介面URI | 功能 |
---|---|---|
GET /api/getDogs/{id} | GET /api/dogs/{id} | 獲取一個小狗狗 |
GET /api/getDogs | GET /api/dogs | 獲取所有小狗狗 |
GET /api/addDogs | POST /api/dogs | 新增一個小狗狗 |
GET /api/editDogs/{id} | PUT /api/dogs/{id} | 修改一個小狗狗 |
GET /api/deleteDogs/{id} | DELETE /api/dogs/{id} | 刪除一個小狗狗 |
GET : 獲取、讀取資源
POST : 新增資源
PUT : 修改資源
DELETE : 刪除資源
實際上,這四個動詞實際上就對應著增刪改查四個操作,這就利用了HTTP動詞來表示對資源的操作。
通過HTTP狀態碼體現動作的結果,不要自定義
200 OK 400 Bad Request 500 Internal Server Error
在 APP 與 API 的互動當中,其結果逃不出這三種狀態:
這三種狀態與上面的狀態碼是一一對應的。如果你覺得這三種狀態,分類處理結果太寬泛,http-status code還有很多。建議還是要遵循KISS(Keep It Stupid and Simple)原則,上面的三種狀態碼完全可以覆蓋99%以上的場景。這三個狀態碼大家都記得住,而且非常常用,多了就不一定了。
改變資料的事交給POST、PUT、DELETE
/dogs 而不是 /dog
GET /cars/711/drivers/ 返回 使用過編號711汽車的所有司機
GET /cars/711/drivers/4 返回 使用過編號711汽車的4號司機
HATEOAS:Hypermedia as the Engine of Application State 超媒體作為應用狀態的引擎。
RESTful API最好做到HATEOAS,即返回結果中提供連結,連向其他API方法,使得使用者不查檔案,也知道下一步應該做什麼。比如,當用戶向api.example.com的根目錄發出請求,會得到這樣一個檔案。
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
上面程式碼錶示,檔案中有一個link屬性,使用者讀取這個屬性就知道下一步該呼叫什麼API或者可以呼叫什麼API了。
強制性增加API版本宣告,不要釋出無版本的API。如:/api/v1/blog
面向擴充套件開放,面向修改關閉:也就是說一個版本的介面開發完成測試上線之後,我們一般不會對介面進行修改,如果有新的需求就開發新的介面進行功能擴充套件。這樣做的目的是:當你的新介面上線後,不會影響使用老介面的使用者。如果新介面目的是替換老介面,也不要在v1版本原介面上修改,而是開發v2版本介面,並宣告v1介面廢棄!
關於HTTP RESTful風格API設計的更多例子,請大家參考:http://httpbin.org/
以上就是Spring Boot開發RESTful介面與http協定狀態表述的詳細內容,更多關於Spring Boot開發RESTful介面http狀態的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45