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