.NET - Compreendendo o REST

 Neste artigo eu vou apresentar os conceitos básicos sobre o estilo arquitetural REST(Representation State Transfer).
 Compreendendo o estilo REST
 
A definição de REST (transferência de estado representacional) foi introduzida em 2000 por Roy Fielding em sua dissertação de doutorado.

REST é um estilo de arquitetura para a concepção de sistemas distribuídos. Não é um padrão, não é uma tecnologia, mas é um conjunto de restrições, um conjunto de regras, tais como :

Embora atualmente sua implementação esteja relacionada com o HTTP ele não é restrito ao HTTP.

Ele se tornou uma alternativa mais leve e simples ao SOAP para realizar a comunicação entre serviços distribuídos entre plataformas e tecnologias diferentes. Embora o SOAP continue sendo usado o REST, a cada dia, aumenta o seu campo de atuação.

Diferente do SOAP que é baseado em ações o REST é baseado em recursos, e tem sua implementação para diversas tecnologias como Java, .NET, Node.js, Ruby, etc. baseada em 3 pilares:

Na figura abaixo temos uma representação esquemática do modelo REST:

Princípios REST

Métodos HTTP
 
Usa métodos HTTP para mapear operações CRUD (criar, recuperar, atualizar, excluir) para solicitações HTTP.
 
GET - Recupera informações.

As solicitações GET devem ser seguras e idempotentes, ou seja, independentemente de quantas vezes ela se repete com os mesmos parâmetros, os resultados são os mesmos.

 
Recupere um todos os livros :
GET /livros/
Recupere um livro com id igual a 1 :
GET /livros/1

POST - Solicita que o recurso na URI realize uma ação com a entidade fornecida.  Muitas vezes POST é usado para criar uma nova entidade, mas também pode ser usada para atualizar uma entidade. 
Crie um novo livro:  POST /livros
 

PUT -  Armazena uma entidade em um URI. Pode criar uma nova entidade ou atualizar uma existente.

Uma solicitação PUT é idempotente.
 
Modificar o livro com id igual a 1:  PUT /livros/1
 

 
DELETE -  Solicita que um recurso seja removido; no entanto, o recurso não tem que ser removido imediatamente. Pode ser uma solicitação assíncrona ou de longa duração.
 
Exclua um livro com id igual a 1: DELETE /livros/1
 

Nota:  Os métodos GET, PUT e DELETE são idempotentes.

Códigos de status HTTP

 
Códigos de status indicam o resultado da solicitação HTTP.
 
 1XX   Informativo
 2XX   Sucesso
 3XX   Redirecionamento
 4XX   Erro do cliente
 5XX   Erro do Servidor

Ex: Para ver uma lista dos códigos de status HTTP clique aqui : Códigos de status HTTP

Tipos de mídia (Media Type)
 
Os cabeçalhos HTTP Accept e Content-Type podem ser usados para descrever o conteúdo sendo enviados ou solicitado dentro de uma solicitação HTTP.

O cliente pode definir Accept como application/json, se ele está solicitando uma resposta no formato JSON.

Inversamente, quando enviar dados, a definição do tipo de conteúdo como application/xml diz o cliente que os dados que estão sendo enviados no request estão no formato XML.

Exemplos mais usados de media types:

A implementação Microsoft

No caso da plataforma .NET podemos criar serviços baseados em REST usando WCF e o framework ASP .NET Web API.

Para saber mais sobre o assunto veja os links abaixo:

Segui a paz com todos, e a santificação, sem a qual ninguém verá o Senhor;
Hebreus 12:14

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?


  Gostou
?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti