RESTEasy和JAX-RS之间的区别

use*_*378 13 java jax-rs resteasy

什么是Resteasy?RESTEasy和JAX-RS有什么区别?@PathParam和之间有什么区别@QueryParam

Joa*_*uer 20

根据它的主页 RESTEasy是

... JAX-RS规范的完全认证和可移植实现.

因此,JAX-RS是一个用于在Java中实现REST API的库应该是什么样的规范,RESTEasy是该规范的一个实现.

这实际上意味着任何有关JAX-RS的文档也应该以1:1的形式应用于RESTEasy.


Nav*_*r K 7

查询参数从请求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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这里,naveen将其作为userName(Path参数)


yeg*_*256 6

JAX-RS是一组接口和类,没有属于javax.ws.rs.*包的实际实现(它们是Oracle的Java SE 6的一部分).

RESTEasy以及例如JerseyApache CXF是JAX-RS类的开源实现.

在编译期间,您只需要JAX-RS.在运行时,您只需要其中一个实现.