Tag Archives: arquitetura

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.

Estilo – REST

Web Services & Rest/RestFull

Continuando a saga para entender sobre Web Services RESTfull. Hoje abordarei conceitos de Web Services e Rest essenciais para o desenvolvimento de serviços que seguem este tipo de Arquitetura.

Web Services

Em resumo, é um conjunto de métodos que podem ser acessados/invocados em diferentes dispositivos (via Web).

Projetado para transferir dados via protocolos de comunicação(HTTP) para plataformas diferentes, independentemente das linguagens de programação aplicadas nestas plataformas.

rest_webservices_arq

A utilização de WebServices possibilita que novas soluções consigam conversar com aplicações legadas e sistemas criados nas diferentes plataformas possam ter a compatibilidade.

Para realizar esta tarefa com sucesso, é necessária algo (que faça o meio de campo) e consiga realizar a comunicação entre a linguagem do Web service e o Sistema que faz a requisição ao Web Service. Agora entra em ação os caras: REST, SOAP, etc.

REST / RestFull

O Padrão Representational State Transfer é um conjunto de regras arquitetural que define como os padrões Web como HTTP e URIs devem ser utilizados.

Ele permite uma efetiva comunicação/implementação de Web Services, baseado no HTTP e utilizando diversos formatos para representar nossos dados, como JSON, XML, RSS, etc.

rest_webservices_restful

No padrão REST a comunicação é realizada pelos métodos HTTP, URI e Recursos.

Os termos REST e RestFul se diferem, o RESTful diz que minha solução utiliza princípios REST. Ou seja, Restful é apenas uma implementação do REST.