Step Verbs: Os Verbos disponíveis
Continuando a saga REST. Entenda hoje os principais métodos (verbos) REST, os Métodos HTTP de comunicação deste protocolo. Vamos lá:
A Arquitetura REST ocorre através de um conjunto de principais métodos.
Para enviar/receber requests, o HTTP utiliza métodos ou verbos que identificam qual a ação deve ser executada em um determinado recurso.
As mensagens trafegam e utilizam de forma explicita os métodos HTTP. Temos os 5 verbos mais utilizados: GET, POST, PUT e DELETE. Eles podem ser mapeados para operações CRUD e realizar requisições HTTP.
CRUD
Como mencionado acima. Esta arquitetura dispõe de comandos já utilizados na Web(HTTP)
- Create POST
- Read GET
- Update PUT
- Delete DELETE
Estes métodos serão usados levando em consideração as outras regras do REST.
Substantivos (recursos) / Verbos (operações)
Sem o REST, as URLs da WebApp para lidar com os registros ficavam semelhante a este formato produto/4/editar, no estilo REST não passamos mais ações/verbos na URI, para esta definição utilizaremos o método HTTP (GET, POST, PUT, DELET):
Ação / URI / Método HTTP
- Buscar um produto produto/4 GET
- Editar um produto produto/4 PUT
- Deletar um produto produto/4 DELETE
Esses verbos serão usados em nossa API para efetuar as operações CRUD.
Na prática
Buscar um usuário na webapp:
HTTP/1.1
GET http://webapp.com/user/aldo
GET
VerboHTTP e Ação
GET solicita a apresentação/informações de um recurso.
Considerado o método mais simples. Ele irá recuperar, listar informações do serviço. Retornando a representação do recurso em um URI especificada.
O GET não deve ter efeitos colaterais sobre o servidor.
As requisições GET devem ser seguras e idempotentes.
Listar todos os livros da biblioteca
GET /livros/
Buscar um livro “específico” com id igual a 4.
GET/livros/4
Note a utilização do verbo GET.
POST
Este método envia informações que são usadas para criar um novo recurso (uma nova entrada de dados em nosso serviço).
O servidor irá atribuir a URI para o novo objeto e retorna este URI como parte da mensagem de resposta.
Solicitando que o recurso no URI execute uma ação com a entidade fornecida.
O POST é muito utilizado para criar uma nova entidade, mas é possível também atualizar uma entidade.
Criar um novo livro
POST/livros
Aqui estou criando um livro com a utilização do verbo POST.
As informações enviadas no body da request são utilizadas para criar um novo recurso.
PUT
Este método atualiza um resource (determinado elemento) na URI informada. Ele irá armazenar uma entidade em um URI.
Também podemos utilizá-lo para criar (nova entidade), um novo recurso em um URI especificado, se o server permitir que os clientes especifiquem novos Uris.
Modificar o livro com id igual a quatro
PUT/livros/4
Aqui estou alterando um livro existente. Atualizando um recurso na URI especificada.
DELETE
Este método remove um recurso na URI informada. No entanto, o recurso NÃO precisa ser removido imediatamente. Pode ser uma request assíncrona ou de longa duração.
Exclua um livro com id igual a quatro
DELETE /livros/1
Note na exclusão deste livro a utilização do verbo DELETE.
Deve retornar o statuscode 204 caso não exista nenhum recurso para a URI especificada.
Observações
Os métodos GET, PUT e DELETE são IDEMPOTENTES, ou seja, independentemente de quantas vezes ela se repete com os mesmos parâmetros, os resultados serão sempre os mesmos.