RESTlike e RESTful

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 e RESTful está compromissada com aplicação rigorosa de rotas e métodos coesos.

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, conhecida por sua presença dominante na web nos mais diversos tipos de sistemas.

A arquitetura REST propõe 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/acao interagindo com GET, POST, PUT, DELETE e retornos de dados estruturados XML, JSON e, por vezes, HTML.

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. É necessário disponibilizar rotas intuitivas para facilitar o consumo da informação a que se pretende disponibilizar.

Como funciona REST

REST atua com princípios arquitetônicos simples, como HTML, XML (linguagens de marcação) e HTTP (comunicação de hipertexto), não incluindo em sua definição outros protocolos para transmissão de mensagem ou registros. Não menos importante, o formato JSON é tão utilizado quanto XML. 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. REST não define recursos e suas representações, mas fomenta a transmissão efetiva dos mesmos por meio de URIs intuitivas

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 requisições de forma semântica, coesa e intuitiva, utilizando corretamente os nomes de recursos junto a métodos HTTP para realizar operações.

RESTlike??

RESTlike são sistemas que não seguem completamente a regra da semântica, devido a uma problema na arquitetura legada ou por opção do desenvolvedor.

Utilizar PUT (ou patch quando parcial) é necessário pois evita o risco de persistir a mesma informação duas vezes.

Utilização nas APIs

  • Ambientes web, onde requisições são realizadas por usuários (clientes) e servidores respondem com dados.

Benefícios de REST

  • Simplicidade nas operações com dados

APIs REST bem estruturadas requerem versionamento consistente. Você já conhece o versionamento semântico? Também escrevi um post sobre o assunto. confira!

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.

Também escrevi um pouco sobre as regras do versionamento semântico 2.0. Vale a pena conhecer!

2 Anos de experiência em PHP são base sólida para assimilação de outras linguagens e busca de novos desafios. A criação de Sistemas Web e Websites responsivos são minha especialidade. Busco constantemente o aperfeiçoamento das técnicas utilizadas com foco em boas práticas através do conhecimento adquirido das metodologias. O conhecimento diferenciado da língua norte-americana proporciona segurança para programar na língua e entender manuais técnicos. Já em posse dos conceitos as metas perseguidas têm sido o aprofundamento em JavaScript serverside, ASP.NET e aplicações mobile híbridas.