Category Archives: WebApi Rest

WebApi Rest – Excites!

WebApp Saga

O que nós ganhamos!

Conheça o que ganhamos com este modelo arquitetural, o estilo rest.

Leveza e Simplicidade

Apresentado como uma alternativa para a troca de dados.

O REST chega como uma opção mais LEVE e SIMPLES quando comparada ao SOAP. Embora o SOAP ainda seja bastante utilizado, o REST vem aumentando novos adeptos a cada dia.

A sua simplicidade ajudou a torná-lo o principal método para acessar serviços da Web em APPs.

Implementações HTTP

Atualmente possui implementações apenas relacionada ao HTTP, porém, ele não está restrito apenas ao HTTP.

Implementações Existentes

Grandes players como Node.js, .NET, Java e Ruby, já possuem as suas implementações REST. Isso mostra o poder do REST.

No universo .NET por exemplo, podemos construir serviços HTTP baseados em REST com WCF e o Asp.Net Web API Framework.

ASP.NET Web API por exemplo, é um framework para a construção de web APIs NET(HTTP Services) em cima da plataforma .NET, permitindo que uma aplicação possa ser acessada por vários clientes em muitas plataformas.

Além do REST, também temos esses recursos para gerenciar serviços na web:

  • SOAP
  • ASP .NET Web Services (ASMX)
  • ASP .NET Web API
  • WCF

Os 3 pilares

RESTfull Web Services, serviços que seguem esta arquitetura.

O REST é baseado em 3 pilares:

Na representação esquemática do modelo REST temos:  Resources, URI e Representação.

Resources

O REST se contrapõe a arquitetura SOAP.

Diferente do SOAP que é baseado em Ações, o REST é baseado em Recursos, um elemento (conjunto de dados) do qual uma aplicação depende, representando normalmente um item do negócio.

Resources pode ser qualquer coisa que tenha um URI, sendo um mapeamento conceitual para uma ou mais unidades.

Um recurso pode ser um Serviço que interage com qualquer coisa:

  • CatálogoWeb
  • ECommerce ou Sistema interno (tipo CRM)
  • Dispositivo (tipo Impressora)
  • ..

URI

Quando realizamos requisições Web, precisamos dizer o caminho da mesma, o URI (Unified Resource Identifier) um identificador único de um recurso.

Representação

A representação é um estado instantâneo de um recurso em um ponto no tempo.

Sempre que um cliente HTTP for requisitar um resource, a sua representação será  retornada, e NÃO o próprio recurso.

{
"nome": "Aldo",
"email": "wa@gmail.com"
}

É isso mesmo! utilize JSON ou XML para representar os dados associados a um recurso.

A representação do resource será retornado para o cliente como HTML, XML, JSON, TXT, etc…

As Regras do Jogo

O REST NÃO É uma tecnologia ou padrão, mas, sim um conjunto de restrições e regras proposto por Roy Fielding como:

  • Stateless (sem estado), não deve haver monitoração de estado *
  • Cliente Servidor deve possuir um relacionamento modelo cliente/servidor
  • Cache
  • Interface Uniforme
  • Layered System dividido em Camadas
  • Código sob demanda (opcional)

(*) As Interações sem estado não armazenam nenhum contexto de cliente no servidor entre as requisições. O cliente mantém o estado da sessão.

Conceito Simplificado, Aplicabilidade e Dependências Mínimas. 

REST!

De forma simplista, o Rest é um modelo arquitetural projetado para a concepção de sistemas distribuídos, permitindo a comunicação entre serviços distribuídos entre plataformas e tecnologias diferentes.

Em resumo, o REST (Transferência de Estado Representacional) é um padrão de projeto de software à ser seguido no desenvolvimento de um webapp (serviços na web). Desenhado para permitir que programas/plataformas consigam conversar/trocar informações na web.

Roy Fielding

Proposto por Roy Fielding, um dos autores da especificação do protocolo HTTP e definiu o termo REST em 2000 (na sua dissertação de doutorado).

O REST é baseado nos conceitos de Recursos e utilização de requisições HTTP. E, hoje é a principal arquitetura utilizada com WebServices.