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) 并在 , 上拆分,但是您必须编写代码来做到这一点,并考虑当您的其中一个参数出现时该怎么做名称中有一个 , 字符。