我的resteasy端点接口声明如下:
@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名称列表不受限制,允许任何名称......
答案 0 :(得分:0)
如果我理解你想要什么,你的API可能看起来像这样:
@Path("/entity")
public interface EntitySearchEndpoint {
...
@GET
@Path("/search/{searchQuery}")
@Produces(MediaType.APPLICATION_JSON)
public Response search(@PathParam("searchQuery") String searchQuery);
...
}
并且您的客户只需使用字符串调用它:
Response response = entitySearchEndpoint.search("test string");