什么是Resteasy? RESTEasy和JAX-RS有什么区别?
@PathParam
和@QueryParam
之间有什么区别?
答案 0 :(得分:19)
根据its homepage RESTEasy是
...... JAX-RS规范的完全认证和可移植的实现。
因此,JAX-RS是一个用Java实现REST API的库应该是什么样的规范,RESTEasy是该规范的一个实现。
这实际上意味着任何关于JAX-RS的文档都应该以1:1的形式应用于RESTEasy。
答案 1 :(得分: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
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将userName(Path参数)
答案 2 :(得分:6)
JAX-RS是一组没有真正实现的接口和类,属于javax.ws.rs.*
包(它们是Oracle的Java SE 6的一部分)。
RESTEasy以及Jersey或Apache CXF是该JAX-RS类的开源实现。
在编译期间,您只需要JAX-RS。在运行时,您只需要其中一个实现。
答案 3 :(得分:1)
请注意,JAX-RS仅是服务器端规范,RESTEasy已将其扩展为通过RESTEasy JAX-RS客户端框架将JAX-RS引入客户端。
关于param的信息, What is the difference between @PathParam and @QueryParam 关于params的一些重点, When to use @QueryParam vs @PathParam - 加雷思的回答