基於Java的REST架構風格及介面安全性設計的討論
阿新 • • 發佈:2019-01-30
1.REST即表現層狀態傳遞(Representational [,rɛprɪzɛn'teʃnl] State Transfer,簡稱REST)。
(1)REST名詞解釋: 通俗來講就是資源在網路中以某種表現形式進行狀態轉移。分解開來: Resource:所指的不只是資料,而是資料和表現形式的組合; Representational:某種表現形式,比如用JSON,XML,JPEG等; State Transfer:狀態變化。通過HTTP動詞實現。 (2)RESTful API: REST(表述性狀態轉移)是一組架構約束條件和原則。滿足這些約束條件和原則的應用程式或設計就是RESTful。 參考博文: 2.Java中實現RESTful API的主流框架: l Jersey l RESTEasy l Restlet l Apache CXF 以上幾個均為基於JAX-RS的實現,在效能測試中,JBoss的RESTEasy吞吐率最好,SUN的Jersey其次,CXF、Restlet最差。(網評) 3.滿足HATEOAS(超媒體作為應用狀態的引擎 Hypermedia As The Engine Of Application State)約束的REST實現,使用Spring Data專案中的以下幾個子專案: (1)spring-data-rest並沒有真正的實現JAX-RS(Java API for RESTful Web Services)規範。 其中JAX-RS是Oracle的Java EE 6的技術,與Spring開源平臺下的框架有所不同。 (2)Spring Data JPA 是 Spring 基於 ORM 框架、JPA 規範的基礎上封裝的一套JPA應用框架,可使開發者用極簡的程式碼即可實現對資料的訪問和操作。 此外,Spring Data還包括包括非關係- 第一個層次(Level 0)的 Web 服務只是使用 HTTP 作為傳輸方式,實際上只是遠端方法呼叫(RPC)的一種具體形式。SOAP 和 XML-RPC 都屬於此類。
- 第二個層次(Level 1)的 Web 服務引入了資源的概念。每個資源有對應的識別符號和表達。
- 第三個層次(Level 2)的 Web 服務使用不同的 HTTP 方法來進行不同的操作,並且使用 HTTP 狀態碼來表示不同的結果。如 HTTP GET 方法來獲取資源,HTTP DELETE 方法來刪除資源。
- 第四個層次(Level 3)的 Web 服務使用 HATEOAS。在資源的表達中包含了連結資訊。客戶端可以根據連結來發現可以執行的動作。