【科普】RestFul服務基本介紹

REST介紹java

REpresentational State Transfer (REST)是一種架構原則,其中將web服務視爲資源,能夠由其URL惟一標識。web

RESTful Web服務的關鍵特色是明確使用HTTP方法來表示不一樣的操做的調用。編程

REST的基本設計原則對典型CRUD操做使用HTTP協議方法:json

POST -建立資源後端

GET -檢索資源服務器

PUT–更新資源架構

DELETE -刪除資源app

REST服務的主要優點在於:less

它們是跨平臺(Java、.net、PHP等)高度可重用的,由於它們都依賴基本HTTP協議。模塊化

它們使用基本的XML,而不是複雜的SOAP XML,使用很是方便。

基於REST的web服務日益成爲後端企業服務集成的首選方法。與基於SOAP的web服務相比,它的編程模型簡單,而本機XML(而不是SOAP)的使用減小了序列化和反序列化過程的複雜性,而且再也不須要其餘做用相同的第三方庫。

2. 編寫目的

編寫本文的目的是爲了將系統功能進行模塊化、服務化,將用戶的操做以服務的方式提供。系統與系統之間遵循服務規範,將系統與系統之間的交互轉爲定製化服務交互,以實現系統與系統之間的集成

3. 編寫原則

可尋址性(Addressability)

REST 中的全部東西都基於資源 的概念。資源與 OOP 中的對象或其餘名詞不一樣,它是一種抽象,必須能夠經過 URI 尋址或訪問。

接口一致性(Interface uniformity)

與SOAP或其餘標準不一樣,REST要求用來操縱資源的方法或動詞不是任意的。這意味着RESTful服務的開發人員只能使用HTTP支持的方法,好比GET、PUT、POST、DELETE等等。所以不須要使用WSDL等服務描述語言

無狀態(Statelessness)

爲了加強可伸縮性,服務器端不存儲客戶機的狀態信息。這使服務器不與特定的客戶機相綁定,負載平衡變得簡單多了。這還讓服務器更容易監視、更可靠

具象(Representational)

客戶機老是與資源的某種具象交互,毫不會直接與資源自己交互。同一資源還能夠有多個具象。理論上說,持有資源的具象的任何客戶機應該有操縱底層資源的足夠信息。

連通性(Connectedness)

任何基於REST的系統都應該預見到客戶機須要訪問相關的資源,應該在返回的資源具象中包含這些資源。例如,能夠以超連接的形式包含特定RESTful服務的操做序列中的相關步驟,讓客戶機能夠根據須要訪問它們。

4. 服務使用說明

1) 當前系統已經提供的服務

 


 

2)  GET方式調用服務

 


 

說明:

1.請求方式包括:GET (這裏以area服務爲實例,GET對應每個服務Resource中的@RequestMapping(value = "treeData",method = RequestMethod.GET))

2.請求URL:rest服務請求地址,對應XXXServiceResource.java的mapping配置中的value

@RequestMapping(value = "treeData", method = RequestMethod.GET))

3.其中GET請求只包含了請求方式和請求的URL,返回的結果以json格式返回給客戶端

3) POST、DELETE、UPDATE方式調用服務

 


 

說明:

1.請求方式選擇POST、DELETE、UPDATE(這裏以保存收藏功能爲例(PUT請求),對應每個服Resource中的@RequestMapping(value = "save",method = RequestMethod.PUT))

2.Json參數: 其中POST、DELETE、UPDATE可能傳遞參數經過json,也可能經過路徑直接拼接參數,這邊以傳遞json到服務端爲實例,對應服務端代碼:

public JSONObject save(@RequestBody JSONObject obj,BookmarkTag bookmarkTag) {

3.請求URL:rest服務請求地址,對應XXXServiceResource.java的mapping配置中的value

@RequestMapping(value = " save",method = RequestMethod.PUT))

4.返回的結果以json格式返回給客戶端

5.  服務列表(僅僅列舉實例)

1)添加標籤

 


 

2)刪除標籤

 


 

3)更新標籤

 


 

4)獲取標籤列表

 

 

-----------------------------------------------------------------------

 

完整的項目源碼來源  歡迎你們一塊兒學習研究相關技術,源碼獲取請加求求:2670716182

相關文章
相關標籤/搜索