更新時間:2022-06-06 09:24:39 來源:動力節點 瀏覽1457次
Java Rest是什么?動力節點小編來告訴大家。
即Representational State Transfer的縮寫。我對這個詞組的翻譯是"表現層狀態轉化"。
Web應用程序兩個原則是:
客戶端和服務器之間的交互在請求之間是無狀態的。從客戶端到服務器的每個請求都必須包含理解請求所必需的信息。如果服務器在請求之間的任何時間點重啟,客戶端不會得到通知。此外,無狀態請求可以由任何可用服務器回答,這十分適合云計算之類的環境。客戶端可以緩存數據以改進性能。
分層系統,這表示組件無法了解它與之交互的中間層以外的組件。通過將系統知識限制在單個層,可以限制整個系統的復雜性,促進了底層的獨立性。
REST的名稱"表現層狀態轉化"中,省略了主語。"表現層"其實指的是"資源"(Resources)的"表現層"。所謂"資源",就是網絡上的一個實體,或者說是網絡上的一個具體信息。
"資源"是一種信息實體,它可以有多種外在表現形式。我們把"資源"具體呈現出來的形式,叫做它的"表現層"(Representation)。它的具體表現形式,應該在HTTP請求的頭信息中用Accept和Content-Type字段指定
如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生"狀態轉化"(State Transfer)。而這種轉化是建立在表現層之上的,所以就是"表現層狀態轉化"。
客戶端用到的手段,只能是HTTP協議。具體來說,就是HTTP協議里面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應四種基本操作:GET用來獲取資源,POST用來新建資源(也可以用于更新資源),PUT用來更新資源,DELETE用來刪除資源。
綜合上面的解釋,我們總結一下什么是RESTful架構:
(1)每一個URI代表一種資源;
(2)客戶端和服務器之間,傳遞這種資源的某種表現層;
(3)客戶端通過四個HTTP動詞,對服務器端資源進行操作,實現"表現層狀態轉化"。
jax-rs
JAX-RS 建立了一種特殊的語言來描述資源,正如由其編程模型所表示的。有五種主要條目:根資源、子資源、資源方法、子資源方法以及子資源定位器。
注釋
@Path注釋被用來描述根資源、子資源方法或子資源的位置。value 值可以包含文本字符、變量或具有定制正則表達式的變量。清單 6 的例子展示了 @Path 注釋的主要應用。
@GET、@POST、@PUT、@DELETE 以及 @HEAD 均是 HTTP 請求方法指示符注釋。您可以使用它們來綁定根資源或子資源內的 Java 方法與 HTTP 請求方法。
@Consumes 注釋代表的是一個資源可以接受的 MIME 類型。
@Produces 注釋代表的是一個資源可以返回的 MIME 類型。JAX-RS @Provider:提供程序是一些應用程序組件,允許在三個關鍵領域進行運行時行為的定制:數據綁定、異常映射以及上下文解析(比如,向運行時提供 JAXBContext 實例)。
MessageBodyWriters 被 JAX-RS 運行時用來序列化所返回資源的表示。
MessageBodyReaders 則與 MessageBodyWriters 相反。
配置
可以通過擴展 javax.ws.rs.core.Application 類實現配置這些類
開源jersey
Jersey is the open source, production quality, JAX-RS (JSR 311) Reference Implementation for building RESTful Web services. But, it is also more than the Reference Implementation. Jersey provides an API so that developers may extend Jersey to suit their needs.
jersey是一個開源的,產品級別的,基于jax-rs參考,用于構建RestFul webService的實現。如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習