0
我RestEasy的端点接口声明如下:resteasy,如何初始化用于代理客户端调用的@Context UriInfo参数?
@Path("/entity")
public interface EntitySearchEndpoint {
...
@GET
@Path("/search")
@Produces(MediaType.APPLICATION_JSON)
public Response search(@Context UriInfo ui);
...
}
现在我使用
ResteasyClient reClient = new ResteasyClientBuilder().build();
ResteasyWebTarget webTarget = reClient.target(URI.create("http://example.com"));
EntitySearchEndpoint entitySearchEndpoint = ncspAPIWebTarget.proxy(EntitySearchEndpoint.class);
现在我能够使用
UriInfo ui = ???
Response response = entitySearchEndpoint.search(ui);
我的问题来调用服务的接口创建的代理客户端是如何创建UriInfo实例以仅包含所需的查询参数?
可能使用@Context UriInfo
作为参数是不正确的,什么是正确的方法?
QueryParam名称列表中没有限制,任何名称被允许...
谢谢兰迪,我终于找到了解决办法,现在我甚至不记得它,但我会尽力在这里以后写。重点是,搜索参数是在查询parametrs,意味着问号'?paam1 = value1&param2 = value2&.....' – mirec
我看,那么你可能使用@QueryParam。我不会使用UriInfo(它不会像这样的参数传递),因为看着你的api代码的人不会意识到它有输入。 QueryParam更清晰。 – Randy
是的,但参数的数量可能会有所不同,其名称也可能会有所不同... – mirec