Я будую загальну веб-службу, і мені потрібно зібрати всі параметри запиту в один рядок для подальшого аналізу. Як я можу це зробити?
Відповіді:
Ви можете отримати доступ до одного параметра через @QueryParam("name")
або до всіх параметрів через контекст:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
Ключ - @Context
анотація jax-rs , за допомогою якої можна отримати доступ:
UriInfo, Request, HttpHeaders, SecurityContext, Providers
Додавши трохи більше до прийнятої відповіді. Отримати всі параметри запиту можна також наступним чином, не додаючи до методу додатковий параметр, який може бути корисним при підтримці документації swagger.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}