REST, RESTlike e RESTful (e o GraphQL?)

pngegg111
Tempo de leitura: 2 minuto(s)
RESTlike e RESTFUL são duas maneiras para arquitetar os endereços de recursos em aplicações web com base em REST, sendo que REStlike é uma abordagem simplista, flexível e RESTful está compromissada com aplicação rigorosa de rotas e métodos coesos.

A arquitetura REST propõe basicamente um catálogo de endereços bem definido. Basicamente a padronização de rotas de API na comunicação cliente/servidor com ações basicamente verbais via requisições HTTP (stateless) com destino a endereços conhecidos de um servidor. Requisições HTTP enviadas http://site.com/objeto/ação interagindo com GET, POST, PUT, DELETE e retornos de texto puro ou dados estruturados e serializados XML, JSON. Em casos especiais, rotas REST podem retornar tipos variados de recurso, como texto puro, HTML, arquivos, imagens, vídeos, músicas e etc.

Um bom começo para um projeto de software é projetar como será sua API: a forma como se dará sua comunicação com os clientes e outros servidores. Surge então a proposta REST – Transferência de Estado Representacional – conhecida por sua presença dominante em sistemas da web como Redes Sociais, E-commerce, Ensino a Distância e tantos outros.

O problema que REST tenta mitigar

A comunicação cliente/servidor e servidor/servidor se torna um problema quando não existe um planejamento da sintaxe das rotas (endpoints) para obtenção de informações. Arquitetura em padrão REST estabelece rotas intuitivas como http://site.com/objeto/acao para facilitar o consumo da informação a que se pretende disponibilizar.

REST

REST é um conceito de arquitetura para padronizar endereços de APIs. Dados estruturados JSON são tão utilizados quanto XML para requisições e respostas. Transferência de Estado Representacional a que se refere, está relacionada à forma como se dá a transmissão da informação no ciclo de vida da aplicação.

RESTful

Sistemas API arquitetados com vistas a acessos REST e uso semântico dos métodos HTTP GET, POST, PUT, PATCH, DELETE são chamados RESTFUL.

RESTFUL endereça nomes de recursos junto a métodos HTTP para realizar operações.

RESTlike

RESTlike são sistemas que seguem parcialmente a regra da semântica REST. Essa é a diferença em relação ao RESTful. A adoção de RESTlike na arquitetura do software, ocorre devido a problemas na arquitetura legada ou necessidade de flexibilidade nas rotas.

Cabeçalhos de requisição e resposta HTTP

GET /exemplo HTTP/1.0
HTTP/1.0 200
 <conteúdo>
 </conteúdo>

Utilização nas APIs

  • Ambientes web, onde requisições são realizadas tanto por usuários (clientes) quanto outros sistemas. A aplicação servidora responde com dados.
  • Utilizar PUT (ou patch quando parcial) é necessário pois evita o risco de persistir a mesma informação duas vezes.

Benefícios de REST

  • Válido e portável para diversas linguagens web
  • Padrão de comunicação com servidor
  • Mapeamento dos serviços de uma aplicação
  • Simplicidade nas operações com dados

Evoluindo de RESTlike para RESTful

Agora que vimos que RESTlike é um quase-RESTFUL, provavelmente queremos refatorar nossas APIs, tornando-as coesas como propõe RESTFUL. Tomar essa decisão de mudança em um sistema em produção custa caro. Deve-se considerar muitos fatores de peso para que isso seja considerado necessário. Mas como resolver o problema? Bom, caso haja realmente essa pretensão, deve-se pensar no versionamento de API como alternativa, de tal forma que as rotas RESTlike existentes (v.1) sejam mantidas e as novas (v.2) RESTful possam ser oferecidas como nova versão de API, desativando as versões mais antigas gradativamente.

O advento do GraphQL

GraphQL é mais uma forma de acesso a dados, e tem demonstrado ser uma ótima alternativa ao REST. Não é necessário substituir suas API’s REST por GraphQL sem uma justificativa plausível, visto que são apenas diferentes “linguagens” para manipulação de dados que realizam a mesma função.

Leia mais sobre Versionamento Semântico

Leia mais sobre O que o empreendedor precisa saber sobre software?

Quer saber mais sobre como funciona? Fale com um desenvolvedor agora mesmo!
Este artigo foi lido 4643+ vezes. Obrigado por ler até aqui! Fique à vontade pra copiar e compartilhar. Ajude sempre seus colegas. O conhecimento muda vidas!

O conteudo foi útil? Isso é fantástico. Quer incentivar mais posts como esse? Mostre seu apoio com qualquer valor.
Chave PIX: d0311e58-cb6e-4d47-b3d8-3d4254763ce7

Inscrever-se
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments