大家好,我是IT修真院深圳分院第6期學員,一枚正直善良的JAVA程序員。
今天給大家分享一下,修真院官網JAVA任務中,task2部分的知識點——RESTful API
一、背景介紹
網絡應用程序,分為前端和后端兩個部分。當前的發展趨勢,就是前端設備層出不窮(手機、平板、桌面電腦、其他專用設備......)。
因此,必須有一種統一的機制,方便不同的前端設備與后端進行通信。這導致API構架的流行,RESTful API是目前比較成熟的一套互聯網應用程序的API設計理論。
二、知識剖析
(Representational State Transfer, REST)表述性狀態轉移。
表述性(Representational):REST資源可以用各種形式來進行表述,包括XML JSON甚至HTML---最適合資源使用者的任意形式。
狀態(State):當使用REST的時候,我們更關注資源的狀態而不是對資源采用的行為。
轉移(Trasfer):REST涉及到轉移資源數據,它以某種表述性形式從一個應用轉移到另一個應用。
REST就是將資源的狀態以最適合客戶端或者服務端的形式從服務器端轉移到客戶端(或者反過來)
RESTFul API有哪些特點:
基于“資源”,數據也好、服務也好,在RESTFul設計里一切都是資源。
無狀態。一次調用一般就會返回結果,不存在類似于“打開連接-訪問數據-關閉連接”這種依賴于上一次調用的情況。
URL中通常不出現動詞,只有名詞
URL語義清晰、明確
使用HTTP的GET、POST、DELETE、PUT來表示對于資源的增刪改查
GET(SELECT):從服務器取出資源(一項或多項)。
POST(CREATE):在服務器新建一個資源。
PUT(UPDATE):在服務器更新資源(客戶端提供改變后的完整資源)。
PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務器刪除資源。
在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與數據庫的表格名對應。一般來說,數據庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應該使用復數。
就是URL定位資源,用HTTP動詞(GET,POST,DELETE,PUT,PATCH)描述操作。
GET? ? /users:? ? 列出所有用戶
POST? /users:? ? 新建一個用戶
GET? ? /users/id:? 獲取某個指定用戶的信息
PUT? ? /users/id: 更新某個指定用戶的信息(提供該用戶的所有信息)
PATCH? /users/id:? 更新某個指定用戶的信息(提供部分信息)
DELETE /users/id:? 刪除某個用戶
三、常見問題
1.常見問題
為什么使用RESTful API?
四、解決方案
看Url就知道要什么
看http method就知道干什么
看http status? code就知道結果如何
六、擴展思考
1.對于用戶登錄和用戶退出這兩個業務需求,REST指導下的架構和設計如何滿足
“登錄”作為一個資源,所以登錄是POST?/logins,退出是DELETE?/logins/{id}
? ?實際的操作:
? ?就是Token的POST和DELETE
七、參考文獻
https://www.zhihu.com/question/33959971/answer/57593571
八、更多討論
提問1.PUT和PATCH區別?
答:PUT需要提交完整信息,PATCH可以部分屬性更新。
提問2:使用RESTful 有什么好處?
答:看Url就知道要什么
看http method就知道干什么
看http status? code就知道結果如何
提問3:在jsp中并不支持使用put以及delete標簽,我們該怎么使用?
答:在form表單中增加一條隱藏屬性,
感謝大家觀看
PPT:PPT
視頻:視頻
今天的分享就到這里啦,歡迎大家點贊、轉發、留言、拍磚~
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧~
小禮物走一走,來簡書關注我
贊賞支持
作者:blue
鏈接:
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。