【REST】REST是什么
REST
自從Roy Fielding博士在2000年他的博士論文中提出REST(Representational State Transfer)風格的軟件架構模式后,REST就基本上迅速取代了復雜而笨重的SOAP,成為Web API的標準了。
什么是Web API呢?
如果我們想要獲取某個電商網站的某個商品,輸入http://localhost:3000/products/123,就可以看到id為123的商品頁面,但這個結果是HTML頁面,它同時混合包含了Product的數據和Product的展示兩個部分。對于用戶來說,閱讀起來沒有問題,但是,如果機器讀取,就很難從HTML中解析出Product的數據。
如果一個URL返回的不是HTML,而是機器能直接解析的數據,這個URL就可以看成是一個Web API。比如,讀取http://localhost:3000/api/products/123,如果能直接返回Product的數據,那么機器就可以直接讀取。
REST就是一種設計API的模式。最常用的數據格式是JSON。由于JSON能直接被JavaScript讀取,所以,以JSON格式編寫的REST風格的API具有簡單、易讀、易用的特點。
編寫API有什么好處呢?由于API就是把Web App的功能全部封裝了,所以,通過API操作數據,可以極大地把前端和后端的代碼隔離,使得后端代碼易于測試,前端代碼編寫更簡單。
此外,如果我們把前端頁面看作是一種用于展示的客戶端,那么API就是為客戶端提供數據、操作數據的接口。這種設計可以獲得極高的擴展性。例如,當用戶需要在手機上購買商品時,只需要開發針對iOS和Android的兩個客戶端,通過客戶端訪問API,就可以完成通過瀏覽器頁面提供的功能,而后端代碼基本無需改動。
當一個Web應用以API的形式對外提供功能時,整個應用的結構就擴展為:
把網頁視為一種客戶端,是REST架構可擴展的一個關鍵。
編寫REST API
REST API規范
編寫REST API,實際上就是編寫處理HTTP請求的async函數,不過,REST請求和普通的HTTP請求有幾個特殊的地方:
REST請求仍然是標準的HTTP請求,但是,除了GET請求外,POST、PUT等請求的body是JSON數據格式,請求的Content-Type為application/json;
REST響應返回的結果是JSON數據格式,因此,響應的Content-Type也是application/json。
REST規范定義了資源的通用訪問格式,雖然它不是一個強制要求,但遵守該規范可以讓人易于理解。
轉自:REST - 廖雪峰的官方網站
總結
以上是生活随笔為你收集整理的【REST】REST是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转自CodeSheep】程序猿好书推荐
- 下一篇: 【MyBatis】MyBatis中,大于