原文:https://jersey.github.io/documentation/latest/jaxrs-resources.html
1、根资源类
POJO满足两个条件:用@Path给类注解,至少有一个方法用@Path或者一个资源方法用资源方法注解(如@GET, @PUT, @POST, @DELETE)。
package org.glassfish.jersey.examples.helloworld;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("helloworld") //@Path 注解是相对URI路径,前后有没有/都一样 。也把变量放在{}里,同时还可以用正则表达式限定路径
public class HelloWorldResource {
public static final String CLICHED_MESSAGE = "Hello World!";
@GET//HTTP方法,如果没有指定,默认自动支持@HEAD@OPTIONS。
public String getHello() {
return CLICHED_MESSAGE;
}
}
@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]*}")//带变量和正则表达式限定条件的@Path 注解
public class UserResource {
@GET
@Produces("text/xml")//可以返回给客户端的MIME媒体类型,可用于类,也可用于方法
public String getUser(@PathParam("username") String userName) {// @PathParam用来获取请求方法路径的参数
...
}
@GET
@Produces({"application/xml;qs=0.9","application/json"} )//多个MIME类型, 并且可以指定qs(quality factor)
public String doGetAsXmlOrJson() {
...
}
}
@HEAD会调用Get方法(if present),忽略返回消息体(if set)。@OPTIONS的返回由“Accept”头里定义的请求媒体类型决定。@OPTIONS可返回一组“Allow”头里支持的资源方法的返回,或者返回WADL文档。