В настоящее время я пытаюсь добавить новую функцию в свой REST API.Java REST API Query annotation
В основном я хочу добавить возможность добавления параметров запроса в конец пути и превратить это в карту всех параметров запроса, например.
мой текущий код позволяет мне делать такие вещи, как
localhost:8181/cxf/check/
localhost:8181/cxf/check/format
localhost:8181/cxf/check/a/b
localhost:8181/cxf/check/format/a/b
и это будет использовать все @pathparam как строковые переменные, чтобы сгенерировать ответ.
То, что я хочу сделать сейчас добавить:
localhost:8181/cxf/check/a/b/?x=abc&y=def&z=ghi&...
localhost:8181/cxf/check/format/a/b/?x=abc&y=def&z=ghi&...
, и я бы тогда это сгенерировать карту, которая может быть использована вместе с pathparam, чтобы построить ответ
x => abc
y => def
z => ghi
... => ...
Я был что-то вроде этого [ниже], однако @QueryParam, похоже, обрабатывает только одно ключевое значение, а не карту.
@GET
@Path("/{format}/{part1}/{part2}/{query}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2, @QueryParam("query") Map<K,V> query);
ниже - мой текущий код интерфейса.
@Produces(MediaType.APPLICATION_JSON)
public interface RestService {
@GET
@Path("/")
Response getCheck();
@GET
@Path("/{format}")
Response getCheck(@PathParam("format") String format);
@GET
@Path("/{part1}/{part2}")
Response getCheck(@PathParam("part1") String part1,@PathParam("part2") String part2);
@GET
@Path("/{format}/{part1}/{part2}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2);
}
@Context то, что я искал, на котором я хотел (как построить карту) однако у меня была проблема получения этой работы (просто нужно посмотреть на несколько примеров.) это позволяет мне использовать @Path ("/ {format}/{part1}/{part2} /"), иначе я должен оставить его пустым, а затем извлечь путь позже из UriInfo? –
Вы можете использовать '@ PathParam' и' @Context UriInfo' вместе. Я включил полный пример в ответ – pedrofb
Спасибо, что я буду проверять, как только могу поблагодарить вас! –