1. 程式人生 > >JEESZ REST 服務接口介紹

JEESZ REST 服務接口介紹

address 標簽 stat app tel 伸縮 ava 調用服務 名詞

REST 介紹

REpresentational State Transfer (REST) 是一種架構原則,其中將 web 服務視為資源,可以由其 URL 唯一標識。RESTful Web 服務的關鍵特點是明確使用 HTTP 方法來表示不同的操作的調用。

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

POST - 創建資源

GET - 檢索資源

PUT – 更新資源

DELETE - 刪除資源

REST 服務的主要優勢在於:

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

它們使用基本的 XML,而不是復雜的 SOAP XML,使用非常方便。

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

1.2、 編寫目的

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

1.3、 編寫原則

可尋址性(Addressability)REST 中的所有東西都基於資源 的概念。資源與 OOP 中的對象或其他名詞不同,它是一種抽象,必須可以通過 URI 尋址或訪問。接口一致性(Interface uniformity)與 SOAP 或其他標準不同,REST 要求用來操縱資源的

方法或動詞不是任意的。這意味著 RESTful 服務的開發人員只能使用 HTTP 支持的方法,比如GET、PUT、POST、DELETE 等等。因此不需要使用 WSDL 等服務描述語言。無狀態(Statelessness)為了增強可伸縮性,服務器端不存儲客戶機的狀態信息。這使服務器不與特定的客戶機相綁定,負載平衡變得簡單多了。這還讓服務器更容易監視、更可靠。

具象(Representational)客戶機總是與資源的某種具象交互,絕不會直接與資源本身交互。

同一資源還可以有多個具象。理論上說,持有資源的具象的任何客戶機應該有操縱底層資源的足夠信息。

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

1.4、 變更歷史

技術分享圖片

2、 服務使用說明

2.1、 當前系統已經提供的服務

技術分享圖片

2.2、 GET 方式調用服務

技術分享圖片

說明:

  1. 請求方式包括:GET (這裏以 area 服務為實例,GET 對應每一個服務 Resource 中的

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

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

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

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

2.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) {

  1. 請求 URL:rest 服務請求地址,對應 XXXServiceResource.java 的 mapping 配置中的 value@RequestMapping(value = " save", method = RequestMethod.PUT))

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

3、 服務列表(這邊以我的收藏服務為例)

3.1、 添加標簽分類

技術分享圖片

3.2、 刪除分類標簽

技術分享圖片

技術分享圖片

3.3、 更新分類標簽

技術分享圖片

3.4、 獲取分類標簽列表

技術分享圖片

JEESZ REST 服務接口介紹