如何使用 dropwizard 按 ID 检索对象?
How can I retrieve an object by ID with dropwizard?
我正在尝试使用 dropwizard 创建 RESTful API,但是,当我尝试输入 resource/id 时,它 return 给我一个错误 500 ,但是当我尝试 return 在 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);
}
您没有为获取单个资源映射的 API 方法。你需要这样的东西:
@GET
@Path("{id}")
public Aviao read(@PathParam("id") LongParam id) {
return dao.get(id);
}
我正在尝试使用 dropwizard 创建 RESTful API,但是,当我尝试输入 resource/id 时,它 return 给我一个错误 500 ,但是当我尝试 return 在 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);
}
您没有为获取单个资源映射的 API 方法。你需要这样的东西:
@GET
@Path("{id}")
public Aviao read(@PathParam("id") LongParam id) {
return dao.get(id);
}