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