簡體   English   中英

RESTEasy和JAX-RS之間的區別

[英]Difference between RESTEasy and JAX-RS

什么是Resteasy? RESTEasy和JAX-RS有什么區別? @PathParam@QueryParam什么@QueryParam

根據它的主頁 RESTEasy是

... JAX-RS規范的完全認證和可移植實現。

因此,JAX-RS是一個用於在Java中實現REST API的庫應該是什么樣的規范,RESTEasy是該規范的一個實現。

這實際上意味着任何有關JAX-RS的文檔也應該以1:1的形式應用於RESTEasy。

查詢參數從請求URI查詢參數中提取,並使用方法參數參數中的javax.ws.rs.QueryParam批注指定。

例:

@Path("smooth")
@GET
public Response smooth(
    @DefaultValue("2") @QueryParam("step") int step,
    @QueryParam("minm") boolean hasMin,
    @QueryParam("test") String test
    ) { ... }

URL: http://domain:port/context/XXX/smooth?step=1&minm=true&test=value

URI 路徑參數從請求URI中提取,參數名稱對應於@Path類級別注釋中指定的URI路徑模板變量名稱。 使用方法參數參數中的javax.ws.rs.PathParam批注指定URI參數

例:

@Path("/{userName}")
public class MyResourceBean {
...
@GET
public String printUserName(@PathParam("userName") String userId) {
    ...
}
}


 URL: http://domain:port/context/XXX/naveen

這里,naveen將其作為userName(Path參數)

JAX-RS是一組沒有真正實現的接口和類,屬於javax.ws.rs.* packages(它們是Oracle SE 6的一部分,由Oracle提供)。

RESTEasy以及例如JerseyApache CXF是JAX-RS類的開源實現。

在編譯期間,您只需要JAX-RS。 在運行時,您只需要其中一個實現。

另請注意,JAX-RS僅是服務器端規范,RESTEasy已將其擴展為通過RESTEasy JAX-RS客戶端框架將JAX-RS引入客戶端。

關於param的信息, @ PathParam和@QueryParam什么區別這里有關於params的一些重點, 何時使用@QueryParam vs @PathParam - Gareth的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM