RESTFUL概念,什麼是RESTFUL

概述

RESTFUL的定義

RESTFUL是一種網絡應用程序的設計風格和開發方式,基於HTTP,可以使用XML格式定義或JSON格式定義。自從Roy Fielding博士在2000年他的博士論文中提出REST(Representational State Transfer)風格的軟件架構模式後,REST就基本上迅速取代了複雜而笨重的SOAP( Simple Object Access Protocol),成爲Web API的標準了。

什麼是Web API呢?

如果我們想要獲取某個電商網站的某個商品,輸入http://localhost:9999/products/123,就可以看到id爲123的商品頁面,但這個結果是HTML頁面,它同時混合包含了Product的數據和Product的展示兩個部分。對於用戶來說,閱讀起來沒有問題,但是,如果機器讀取,就很難從HTML中解析出Product的數據。

如果一個URL返回的不是HTML,而是機器能直接解析的數據,這個URL就可以看成是一個Web API。比如,讀取http://localhost:9999/api/products/123,如果能直接返回Product的數據,那麼機器就可以直接讀取。

REST就是一種設計API的模式。最常用的數據格式是JSON(JavaScipt Object Notation)。由於JSON能直接被JavaScript讀取,所以,以JSON格式編寫的REST風格的API具有簡單、易讀、易用的特點。

編寫API有什麼好處呢?由於API就是把Web App的功能全部封裝了,所以,通過API操作數據,可以極大地把前端和後端的代碼隔離,使得後端代碼易於測試,前端代碼編寫更簡單。

此外,如果我們把前端頁面看作是一種用於展示的客戶端,那麼API就是爲客戶端提供數據、操作數據的接口。這種設計可以獲得極高的擴展性。例如,當用戶需要在手機上購買商品時,只需要開發針對iOS和Android的兩個客戶端,通過客戶端訪問API,就可以完成通過瀏覽器頁面提供的功能,而後端代碼基本無需改動。

當一個Web應用以API的形式對外提供功能時,整個應用的結構就擴展爲:

img

把網頁視爲一種客戶端,是REST架構可擴展的一個關鍵。

Rest架構的主要原則

  • 網絡上的所有事物都被抽象爲資源
  • 每個資源都有一個唯一的資源標識符
  • 同一個資源具有多種表現形式(xml,json等)
  • 對資源的各種操作不會改變資源標識符
  • 所有的操作都是無狀態的
  • 符合REST原則的架構方式即可稱爲RESTful

本節內容有部分取於網上博客,侵刪

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章