更新時(shí)間:2022-06-06 09:24:39 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1647次
Java Rest是什么?動(dòng)力節(jié)點(diǎn)小編來告訴大家。

即Representational State Transfer的縮寫。我對(duì)這個(gè)詞組的翻譯是"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。
Web應(yīng)用程序兩個(gè)原則是:
客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無狀態(tài)的。從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。此外,無狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。
分層系統(tǒng),這表示組件無法了解它與之交互的中間層以外的組件。通過將系統(tǒng)知識(shí)限制在單個(gè)層,可以限制整個(gè)系統(tǒng)的復(fù)雜性,促進(jìn)了底層的獨(dú)立性。
REST的名稱"表現(xiàn)層狀態(tài)轉(zhuǎn)化"中,省略了主語。"表現(xiàn)層"其實(shí)指的是"資源"(Resources)的"表現(xiàn)層"。所謂"資源",就是網(wǎng)絡(luò)上的一個(gè)實(shí)體,或者說是網(wǎng)絡(luò)上的一個(gè)具體信息。
"資源"是一種信息實(shí)體,它可以有多種外在表現(xiàn)形式。我們把"資源"具體呈現(xiàn)出來的形式,叫做它的"表現(xiàn)層"(Representation)。它的具體表現(xiàn)形式,應(yīng)該在HTTP請(qǐng)求的頭信息中用Accept和Content-Type字段指定
如果客戶端想要操作服務(wù)器,必須通過某種手段,讓服務(wù)器端發(fā)生"狀態(tài)轉(zhuǎn)化"(State Transfer)。而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。
客戶端用到的手段,只能是HTTP協(xié)議。具體來說,就是HTTP協(xié)議里面,四個(gè)表示操作方式的動(dòng)詞:GET、POST、PUT、DELETE。它們分別對(duì)應(yīng)四種基本操作:GET用來獲取資源,POST用來新建資源(也可以用于更新資源),PUT用來更新資源,DELETE用來刪除資源。
綜合上面的解釋,我們總結(jié)一下什么是RESTful架構(gòu):
(1)每一個(gè)URI代表一種資源;
(2)客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;
(3)客戶端通過四個(gè)HTTP動(dòng)詞,對(duì)服務(wù)器端資源進(jìn)行操作,實(shí)現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。
jax-rs
JAX-RS 建立了一種特殊的語言來描述資源,正如由其編程模型所表示的。有五種主要條目:根資源、子資源、資源方法、子資源方法以及子資源定位器。
注釋
@Path注釋被用來描述根資源、子資源方法或子資源的位置。value 值可以包含文本字符、變量或具有定制正則表達(dá)式的變量。清單 6 的例子展示了 @Path 注釋的主要應(yīng)用。
@GET、@POST、@PUT、@DELETE 以及 @HEAD 均是 HTTP 請(qǐng)求方法指示符注釋。您可以使用它們來綁定根資源或子資源內(nèi)的 Java 方法與 HTTP 請(qǐng)求方法。
@Consumes 注釋代表的是一個(gè)資源可以接受的 MIME 類型。
@Produces 注釋代表的是一個(gè)資源可以返回的 MIME 類型。JAX-RS @Provider:提供程序是一些應(yīng)用程序組件,允許在三個(gè)關(guān)鍵領(lǐng)域進(jìn)行運(yùn)行時(shí)行為的定制:數(shù)據(jù)綁定、異常映射以及上下文解析(比如,向運(yùn)行時(shí)提供 JAXBContext 實(shí)例)。
MessageBodyWriters 被 JAX-RS 運(yùn)行時(shí)用來序列化所返回資源的表示。
MessageBodyReaders 則與 MessageBodyWriters 相反。
配置
可以通過擴(kuò)展 javax.ws.rs.core.Application 類實(shí)現(xiàn)配置這些類
開源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是一個(gè)開源的,產(chǎn)品級(jí)別的,基于jax-rs參考,用于構(gòu)建RestFul webService的實(shí)現(xiàn)。如果大家想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細(xì)致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)