Java Jersery:如何使用 UriInfo 处理 REST URL 的多个查询参数
Java Jersery: How to handle multiple Queries Parameters for a REST URL with UriInfo
我已经实现了如下所示的休息查询:
@Path("list")
@GET
public List<Todo> getTodos(@Context UriInfo uriInfo){
MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters();
List<String> parameterList = queryParameters.get(assignee.name); //Output -> name1,name2 parameterList -- size -1
String parameter = queryParameters.getFirst(assignee.name); //Output -> name1,name2
.
.
.
}
多个参数时如何处理
http://localhost:9090/hello-todo/api/v1/todo/list?assignee.name={name1,name2}
这里不是两个字符串,而是一个字符串。应该怎么处理,是不是把参数String用逗号(,)分割开.?
何时
目前它能够处理这些端点。其余 URL 是
http://localhost:9090/hello-todo/api/v1/todo/list
http://localhost:9090/hello-todo/api/v1/todo/list?status=CRITICAL
http://localhost:9090/hello-todo/api/v1/todo/list?status=MAJOR
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed&todo.title={title}
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed&todo.title={title}&todo.startDate={startDate}
如果您想要queryParameters.get(assignee.name);
到return一个列表,您可以在URL
中多次包含该参数
http://localhost:9090/hello-todo/api/v1/todo/list?assignee.name=name1&assignee.name=name2
或者您可以继续使用单个参数 (list?assignee.name=name1,name2
) 并在 ,
上拆分,但是您必须编写代码来做到这一点,并考虑当您的其中一个参数出现时该怎么做名称中有一个 ,
字符。
我已经实现了如下所示的休息查询:
@Path("list")
@GET
public List<Todo> getTodos(@Context UriInfo uriInfo){
MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters();
List<String> parameterList = queryParameters.get(assignee.name); //Output -> name1,name2 parameterList -- size -1
String parameter = queryParameters.getFirst(assignee.name); //Output -> name1,name2
.
.
.
}
多个参数时如何处理
http://localhost:9090/hello-todo/api/v1/todo/list?assignee.name={name1,name2}
这里不是两个字符串,而是一个字符串。应该怎么处理,是不是把参数String用逗号(,)分割开.?
何时
目前它能够处理这些端点。其余 URL 是
http://localhost:9090/hello-todo/api/v1/todo/list
http://localhost:9090/hello-todo/api/v1/todo/list?status=CRITICAL
http://localhost:9090/hello-todo/api/v1/todo/list?status=MAJOR
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed&todo.title={title}
http://localhost:9090/hello-todo/api/v1/todo/list?status={criticality}&todo.completion.status=completed&todo.title={title}&todo.startDate={startDate}
如果您想要queryParameters.get(assignee.name);
到return一个列表,您可以在URL
http://localhost:9090/hello-todo/api/v1/todo/list?assignee.name=name1&assignee.name=name2
或者您可以继续使用单个参数 (list?assignee.name=name1,name2
) 并在 ,
上拆分,但是您必须编写代码来做到这一点,并考虑当您的其中一个参数出现时该怎么做名称中有一个 ,
字符。