您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spring Boot開發RESTful接口與http協議狀態的方法”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Spring Boot開發RESTful接口與http協議狀態的方法”文章能幫助大家解決問題。
API(Application Programming Interface),顧名思義:是一組編程接口規范,客戶端與服務端通過請求響應進行數據通信。REST(Representational State Transfer)表述性狀態傳遞,決定了接口的形式與規則。RESTful是基于http方法的API設計風格,而不是一種新的技術.
看Url就知道要什么資源
看http method就知道針對資源干什么
看http status code就知道結果如何
對接口開發提供了一種可以廣泛適用的規范,為前端后端交互減少了接口交流的口舌成本,是約定大于配置的體現。通過下面的設計,大家來理解一下這三句話。
當然也不是所有的接口,都能用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 的交互當中,其結果逃不出這三種狀態:
所有事情都按預期正確執行完畢 - 成功
APP 發生了一些錯誤 – 客戶端錯誤(如:校驗用戶輸入身份證,結果輸入的是軍官證,就是客戶端輸入錯誤)
API 發生了一些錯誤 – 服務器端錯誤(各種編碼bug或服務內部自己導致的異常)
這三種狀態與上面的狀態碼是一一對應的。如果你覺得這三種狀態,分類處理結果太寬泛,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接口廢棄!
關于“Spring Boot開發RESTful接口與http協議狀態的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。