13

什么是安逸?RESTEasy 和 JAX-RS 有什么区别?@PathParam和 和有什么不一样@QueryParam

4

4 回答 4

22

根据其主页RESTEasy 是

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

所以 JAX-RS 是一个规范,说明在 Java 中实现 REST API 的库应该是什么样子,而 RESTEasy 是该规范的一个实现。

这实际上意味着 JAX-RS 上的任何文档也应该 1:1 应用于 RESTEasy。

于 2012-09-18T07:10:51.123 回答
8

查询参数是从请求 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 路径模板变量名。URI 参数使用方法参数参数中的 javax.ws.rs.PathParam 注释指定

例子:

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


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

在这里,naveen 将用户名(路径参数)作为

于 2012-09-18T11:03:35.440 回答
7

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

RESTEasy以及JerseyApache CXF等都是 JAX-RS 类的开源实现。

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

于 2012-09-18T10:19:45.127 回答
1

另请注意,JAX-RS 只是服务器端规范,RESTEasy 对其进行了扩展,以通过 RESTEasy JAX-RS 客户端框架将 JAX-RS 带到客户端。

有关参数的信息, @PathParam 和 @QueryParam 之间有什么区别 这里有一些关于参数的要点, 何时使用 @QueryParam 与 @PathParam - Gareth 的回答

于 2012-09-18T11:48:35.320 回答