我正在使用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
}
}
你能告诉我怎么做吗?
提前致谢。
答案 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在休息服务中获取它们。