《Jersey》關於表徵性狀態傳輸(REST)
越來越多的 WEB 服務開始採用了「REST」來實現,究竟「REST」是何方神聖?讓我們簡單介紹「它」。
首先,「REST」並不是新技術,而是一種設計的默契、風格,而不能算是一種標準。簡單的說,「REST」希望針對每一個服務(資源)的管理,透過傳統 HTTP 的請求方法(HTTP Request Method)來區分新增、讀取、更新、刪除(CRUD)。以下做簡單說明。
1、「REST」定義一個 URL 是一個資源服務,利用其不同請求方法(Method)來區分對資源的新增、讀取、更新及刪除的行為。假設我
們想提供一個 WEB 服務,提供對「訂單」做管理的服務,用「REST」的原則來定義,大致如下:
資源服務 | GET | POST | PUT | DELETE |
http://www.example/order/ | 讀取訂單資料 | 建立一組新的訂單 | 更新一組指定訂單 | 刪除一組指定訂單 |
2、符合上述「REST」設計風格的 WEB API ,可以稱它為「RESTful API」。
3、「RESTful API」接收及返回的的媒體資料類型,可以是 Text、JSON、XML、SOAP 等各種型式。近年來 JSON 格式因較輕量,
越來越多的「RESTful API」以 JSON 為主要的媒體資料類型。
4、「REST」的優點:無狀態性使其相依性小、更高效的快取機制增加反應速度、長期的相容性高。
綜合上述,「REST」是不是像 2006 年左右「AJAX」般新瓶裝舊酒的態勢呢?還是說軟體設計也開始吹起「回歸純粹、化繁為簡」的復古風呢?