2
respostas

Dúvida metodos HTTP (GET, POST E DELETE)

Olá,

Durante os estudo tive o seguinte pensamento, o que me impede de fazer um GET e implementar nele o codigo utilizado no DELETE em CarrinhoResouce ?

Se eu anotar o metodo removeProduto da seguinte maneira:

    @Path("{id}/produtos/{produtoId}")
    @GET //-- AQUI ERA DELETE
    public Response removeProduto(@PathParam("id") long id, @PathParam("produtoId") long produtoId) {
        Carrinho carrinho = new CarrinhoDAO().busca(id);
        carrinho.remove(produtoId);
        return Response.ok().build();
    }

Não terei o mesmo resultado final ? se sim, qual seria a real finalidade de eu usar um metodo DELETE ou qualquer outro ?

2 respostas

Oi Leandro, nada te impede, do mesmo jeito que vc pode usar um post para fazer uma busca :). Só que vc perde semântica no sistema e isso é uma das coisas mais importantes quando vc pensa em manutenção.

E a semântica influência no que os servidores podem(não necessariamente fazem) fazer por vc. Se vc tem um recurso que acessado via delete, o servidor já saber que a resposta daquilo não pode ficar no cache, por exemplo. Aquela url também não pode ser acessada 2x, já que não se deleta a mesma coisa 2x.

Bom dia, Tinha essa mesma duvida. Excelente resposta.