Как я могу получить объект по идентификатору с помощью dropwizard? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь создать RESTful API с помощью dropwizard, но когда я пытаюсь ввести ресурс / идентификатор, он возвращает мне ошибку 500, но когда я пытаюсь вернуть все объекты, созданные в ArrayList, все идет нормально .

@Path("/avioes")
@Produces(MediaType.APPLICATION_JSON)
public class AvioesResource {
    private AvioesDAO dao;

    public AvioesResource(AvioesDAO dao) {
        this.dao = dao;
    }

    @POST
    public Aviao create(Aviao aviao) {
        return dao.criar(aviao);
    }

    @GET
    public List<Aviao> read() {
        return dao.lerTodos();
    }

    @PUT
    @Path("{banana}")
    public Response update(@PathParam("banana") LongParam id, Aviao aviao) {
        if(dao.atualizar(id.get(), aviao)) {
            return Response.ok().build();
        }

        throw new WebApplicationException("Não rolou alterar", Response.Status.NOT_FOUND);
    }

    @DELETE
    @Path("{maca}")
    public Response delete(@PathParam("maca") LongParam id, Aviao aviao) {
        if(dao.apagar(id.get())) {
            return Response.ok().build();
        }

        throw new WebApplicationException(Response.Status.NOT_FOUND);
    }

1 Ответ

1 голос
/ 22 мая 2019

У вас нет сопоставленного метода API для получения одного ресурса. Вам нужно что-то вроде этого:

@GET
@Path("{id}")
public Aviao read(@PathParam("id") LongParam id) {
    return dao.get(id);
}
...