1
resposta

Método POST correto?

Boa tarde, tenho uma dúvida quanto a implementação do meu método POST para adicionar produtos a um sistema de estoque, poderiam confirmar se está correto?

@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@POST
public Response produtoCreate(Produto produto) {
    Produto produtos = new Produto();
    try {
        produtos = dao.save()
}    catch (Exception e) {
        return Response.status(Status.NOT_IMPLEMENTED).entity("Erro ao adicionar produto").build();
}
    return Response.status(Status.OK).entity(entity).build();

O método save é o seguinte:

public class ProdutoDAO {

    public void save(Produto produto) throws Exception {
        EntityManager em = HibernateUtil.getEntityManager();
        try {
            em.getTransaction().begin();
            em.persist(produto);
            em.getTransaction().commit();
        } catch (Exception e) {
            em.getTransaction().rollback();
            throw new Exception(e);
        } finally {
            em.close();
        }
    }
1 resposta

No seu código está faltando passar o produto recebido no corpo da requisição para o método save. Além disso, não precisaria declarar o produto fora do try/catch, poderia retornar o produto que foi persistido direto dentro do try. Espero ter ajudado.