什么是RESTful API,及簡單使用。

大家好,我是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

鏈接:

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一說到REST,我想大家的第一反應就是“啊,就是那種前后臺通信方式。”但是在要求詳細講述它所提出的各個約束,以及如...
    時待吾閱讀 3,467評論 0 19
  • 前面兩篇內容(RESTful Web Service 架構剖析和HTTP Methods 和 RESTful Se...
    JeffreyLi閱讀 15,876評論 12 191
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 現在中國的現狀是什么? 十億人民九億賭還有一億在跳舞,大街小巷斗地主,你是其中一個嗎?? 每個人每天幻想與成功者肩...
    霈錚閱讀 173評論 0 0
  • 太陽組42號楊坤第二次課后作業:用印象筆記建立時間管理月、周任務模型 這節課的收獲是:即使再偉大的夢想都要落地才行...
    楊坤晴天閱讀 195評論 0 0