如何减少JAX-RS Rest服务中的样板代码?

时间:2015-03-11 22:39:19

标签: java rest jersey jax-rs boilerplate

我正在使用JAX-RS和Jersey创建一个REST API。

我提供多种"类型",例如事件和用户信息。 问题是,我得到了很多冗余的代码,而且我不知道如何帮助自己。

Per" type"我有一个模型,一个DAO和一个资源。 我认为可以在资源中节省很多打字。

这是一个例子:

@Path("/user")
public class UserResource  {

@Context
private UriInfo uriInfo;
@Context
private Request request;
@Context
private String id;
@Context 
private HttpServletResponse response;


@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Object> getUsers() {
    return UserDao.instance.listElements();
}


@GET
@Path("count")
@Produces(MediaType.TEXT_PLAIN)
public int getCount() {
    return UserDao.instance.listElements().size();
}


@GET
@Path("{id}")
public User getUser(@PathParam("id") String id,
        @Context HttpHeaders headers,
        @Context HttpServletResponse servletResponse) throws IOException{
    AuthChecker.check(headers, servletResponse);
    Object obj=UserDao.instance.getElement(id);
    if(obj==null){
        response.sendError(Response.Status.NOT_FOUND.getStatusCode());
    }
    return (User)obj;
}

。 。 。等等。

所以对于类型&#34;事件&#34;所有这些功能基本相同。我该怎么做才能为多种&#34;类型&#34;。

保存所有这些内容

0 个答案:

没有答案