Tag Archives: POST

Estilo REST {Métodos HTTP}

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.

rest_verbos

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.

rest_get_especifico

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

rest_get

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.

rest_post

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.

rest_put

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.

rest_delete

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.