Манипуляции с конечной точкой API Dropwizard Rest

У меня есть приложение dropwizard для запроса POST/GET информации. у меня есть @POST метод, который заполняет arrayList моим запросом и его параметрами ' 11. Для краткости я сократил пример, чтобы показать только 3 параметра.

@Path("/query")
public class QueryResource

@GET
@Produces(MediaType.APPLICATION_JSON)
@Timed
public List<Query> getQueries() {
    List<Query> queries = new ArrayList<Query>();
    logger.info("Calling get queries with {} method.");
    queries.add(new Query("b622d2c6-03b2-4488-9d5d-46814606e550", "eventTypeThing", "action"));
    return queries;

Я могу отправить запрос на получение через ARC, и он вернется успешно с JSON-представлением запроса.

Я сталкиваюсь с проблемами, когда я пытаюсь сделать @GET запрос по конкретному queryId и вернуть определенный параметр этого. В качестве таких,

@GET
@Path("/{queryId}/action")
public Response getAction(@PathParam("queryId") String queryId, @PathParam("action") String action){
    logger.info("Get action by queryId {}");
    String output = "Get action: " + action;
    return Response.status(200).entity(output).build();

На остальном клиенте я делаю запрос на получение https://localhost/query/b622d2c6-03b2-4488-9d5d-46814606e550/action

Я ожидаю, что вернуть тип действия этого конкретного queryId, но вместо этого возвращает ноль.

1 ответ

Решение

Вы не объявили "действие" как правильный параметр в аннотации @Path метода. Вам нужно изменить это на:

@Path("/{queryId}/{action}")
Другие вопросы по тегам