Existem 9 métodos que podemos utilizar em uma API RESTful. Esse conjunto de métodos possui uma semântica de operações possíveis de serem efetuadas sob um determinado recurso. Ou seja vamos ver que o nome do método já nos mostra qual operação que ele irá fazer.
Na especificação original do HTTP existiam apenas três métodos (GET, POST, HEAD). Na revisão 1.1 foram adicionados mais 5 verbos (OPTIONS, PUT, DELETE, TRACE e CONNECT). A RFC 5789 estendeu o HTTP com um novo método PATCH.
Os RFCs cobrem muitos aspectos das redes de computadores, incluindo protocolos, procedimentos, programas e conceitos, bem como notas de reuniões, opiniões e, às vezes, humor. Abaixo estão os links para RFCs, disponíveis em ietf.org e rfc-editor.org.
GET
O método GET é utilizado quando existe a necessidade de se obter um recurso, então quando você quer “pegar” dados você utiliza o GET. Ele é considerado idempotente, ou seja, independente da quantidade de vezes que é executado sob um recurso, o resultado sempre será o mesmo, ou seja, o GET não deve modificar dados, somente trazer os dados.
curl www.exemplo.com/cliente/1
curl -X GET www.exemplo.com/cliente/1
Por padrão o curl ja utiliza o GET então vemos na primeira linha ele utilizando o curl seguindo da URL e abaixo vemos que podemos colocar de forma explicita o verbo utilizando o -X GET
.
POST
Utilizado para a criação de um recurso a partir do uso de uma representação. Então veja POST na área de programação é sempre gravar ou criar alguma coisa, é por isso que a semântica já nos dá a ideia do que você quer fazer com essa requisição.
curl -X POST www.exemplo.com/cliente \
-H "Content-Type: application/json" \
-d '{"nome":"João"}'
Para utilizar um método POST com curl você usa o -X POST
para dizer que você quer chamar uma requisição POST, coloca também o -H "Content-Type: application/json"
que adiciona no HEADER da requisição informando-a que o formatos dos dados será JSON para o servidor saber como interpretar os dados ao recebe-lo, e por ultimo você adiciona o “corpo”(BODY) da requisição utilizando o comando-d '{"nome":"João"}'
, neste exemplo você estará criando um cliente com nome de João.
PUT
O método PUT é utilizado como forma de atualizar um determinado recurso.
curl -X PUT www.exemplo.com/cliente/1 \
-H "Content-Type: application/json" \
-d '{"nome":"João da Silva"}'
Para utilizar um método PUT com o curl você pode adicionar o -X PUT
para dizer que você quer chamar uma requisição de alteração, da mesma forma que o POST você precisa informar no HEADER qual formato de dados você está enviando e um corpo, no caso a diferença entre o POST e o PUT é a URL adicionada, no POST você faz uma requisição para o /cliente
enquanto o PUT você precisa falar qual cliente quer atualizar colocando geralmente o id do mesmo na URL /cliente/1
desta forma o servidor buscará o cliente com id=1 e atualizará com as informações você enviou no corpo(BODY) da requisição.
DELETE
O delete tem como finalidade a remoção de um determinado recurso.
curl -X DELETE www.exemplo.com/cliente/1
Na chamada do método adicionamos o -X DELETE
e como você quer deletar um recurso você precisar indicar na URL qual o id do recurso a ser apagado /cliente/1
.
Irei postar um novo artigo para falar do outros cincos verbos que existem no HTTP são eles (PATCH, OPTIONS, HEAD, TRACE, CONNECT). Aguardo vocês lá ^^ .
> Entendedo o Verbos HTTP Menos Utilizados
Fontes: Developers Mozilla, Jackson Pires