使用上下文对象作为参数的Rest API

时间:2014-03-17 13:08:06

标签: java api rest parameters model

我正在使用JAX-RS设计REST API。端点如下所示:

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response get(
     @QueryParam("param1") final String param1,
     @QueryParam("param2") final String param2) {
     // Code goes here
} 

我有近7-8个参数。所以我想做类似以下的事情:

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response get(@Context MyContextObject context) {
     // Code goes here
}

我的上下文对象如下:

final class MyContextObject {

    // get methods

    public MyContextObject(final Builder builder) {
        // set final fields
    }

    private final String param1;
    private final String param2; 

    public static final class Builder {
        // builder code goes here
    }
}

你能告诉我怎么做吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果你想通过创建单独的bean类来实现,你需要在bean类中获取查询参数,如下所示。

final class MyContextObject {

// get methods

public MyContextObject(final Builder builder) {
    // set final fields
}

private @QueryParam("param1") final String param1;
private @QueryParam("param2") final String param2;
//and so on...
public static final class Builder {
    // builder code goes here
}
}

如果你这样做,查询参数会受到bean类中这些私有变量的限制,你可以使用getter在休息服务中获取它们。