相關資料:java
RESTFUL是一種網絡應用程序的設計風格和開發方式,基於HTTP,可使用XML格式定義或JSON格式定義。RESTFUL適用於移動互聯網廠商做爲業務使能接口的場景,實現第三方OTT調用移動網絡資源的功能,動做類型爲新增、變動、刪除所調用資源。後端
值得注意的是REST並無一個明確的標準,而更像是一種設計的風格。瀏覽器
重點:RESTful是一種URL的設計風格。網絡
解讀:RESTful並無嚴格的語法約定,不存在「必須知足什麼條件纔算是RESTful」,也並非「不知足什麼條件就必定不是RESTful」。一般,使用RESTful風格的API,響應給客戶端的數據是XML或JSON格式的,也就是「響應正文」,是使用了先後端分離的開發方式。架構
在RESTful架構中,瀏覽器使用POST,DELETE,PUT和GET四種請求方式分別對指定的URL資源進行增刪改查操做。所以,RESTful是經過URI實現對資源的管理及訪問,具備擴展性強、結構清晰的特色。app
解讀:RESTful建議針對不一樣操做,使用不一樣的請求類型,例如「註冊」的核心是插入用戶數據,應該使用POST
類型的請求方式,而「修改密碼」的核心是更新數據,應該使用PUT
類型的操做,等等。可是,基於開發人員的使用習慣,甚至某些複雜的業務可能包含增刪改查中的多種數據操做,沒法準確的定義這究竟是哪種操做,因此,常規作法依然只使用POST
和GET
這2種請求方式,並不使用PUT
和DELETE
方式。框架
例如:如下URL就能夠視爲RESTful風格的:前後端分離
https://blog.csdn.net/x541211190/article/details/81141459
https://blog.csdn.net/wl_1013/article/details/81049691
複製代碼
其實,RESTful風格有一個很是典型的特徵:將核心參數直接做爲URL的一部分,而不是做爲參數來傳遞!ide
若是不採起RESTful風格,以上的URL可能須要設計爲:網站
https://blog.csdn.net/article/details/?username=x541211190&id=81141459
https://blog.csdn.net/article/details/?username=wl_1013&id=81049691
複製代碼
使用RESTful風格,可使得URL更加簡潔,更加易於閱讀或理解!
以上示例只是csdn
是這樣設計的,把URL中域名以後的第1級固定爲「用戶名」,在details
以後的固定爲id
值,並不表明其它網站都必須這樣設計,甚至其它幾乎都不是這麼設計的,因此,到底怎麼設計URL,取決於開發人員對URL的理解,RESTful自己並無做爲相關約定!
若是沒有明確的約定,能夠採起如下風格:
/resources/id/command
複製代碼
或
/resouces/id/property/command
複製代碼
以上設計風格中:
例如,能夠設計爲:
/users/password/change
/addresses/10/set_default
複製代碼
注意:若是將某參數值放在URL中,該參數必定是具備「惟一」特性的,不然,就不該該將該參數值放在URL中。
SpringMVC框架是支持RESTful風格的!在設計請求路徑時,若是請求路徑中包含某個可變的參數值,使用{}
框住自定義的名稱便可,例如設計爲:
@RequestMapping("{aid}/set_default")
複製代碼
在處理請求的方法的參數列表中,經過@PathVariable
註解便可獲取到URL中佔位符對應的值:
@RequestMapping("{aid}/set_default") public JsonResult<Void> setDefault(@PathVariable("aid") Integer aid) { } 複製代碼