Web Services Java Jersery:如何使用UriInfo处理REST URL的多个查询参数

y0u0uwnf  于 2022-11-15  发布在  Java
关注(0)|答案(1)|浏览(136)

我实现了一个rest查询,如下所示:

@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吗?

时间
目前它可以处理这些端点。

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}
gv8xihay

gv8xihay1#

如果希望queryParameters.get(assignee.name);返回列表,则可以在URL中多次包含该参数
http://localhost:9090/hello-todo/api/v1/todo/list?assignee.name=name1&assignee.name=name2
或者,您可以继续使用单个参数(list?assignee.name=name1,name2)并在,上拆分,但您必须编写代码来执行此操作,并考虑当您的某个名称中包含,字符时该如何处理。

相关问题