Daniel Christofolli
2 min readJun 2, 2019

Representational State Transfer, mais conhecido como REST, é um estilo de arquitetura de software baseada em comunicação via rede. O modelo foi criado em 2000 por Roy Fielding, um dos principais criadores do protocolo HTTP em sua tese de doutorado. Roy Fielding explicou que os princípios REST eram conhecidos como “modelo de objeto HTTP”, a partir de 1994, e que foram usados nos padrões HTTP 1.1 e URI (Uniform Resource Identifiers). URI é um conjunto resumido de caracteres usado para identificar recursos na web. Os recursos são representados por esses caracteres, permitindo a interação com os recursos através da internet, usando protocolos específicos.

A ideia do REST é criar uma imagem de como um web service bem projetado deve se comportar.

Sistemas que aplicam todos os princípios, ou pelo menos a maior parte deles, são considerados RESTful.

Princípios

Conceitos fundamentais do REST:

  • Cliente/servidor: a mensagem HTTP carrega todas as informações necessárias para compreender a requisição. Isso significa que nem cliente nem servidor precisam gravar nenhum estado das comunicações. Mas na prática, muitos sistemas baseados em HTTP utilizam cookies e outras práticas para manter o estado da sessão. Algumas dessas práticas, como a reescrita de URLs não são permitidas pela regra de REST
  • Conjunto de operações bem definidas que se aplicam a todos os recursos de informação: Existem poucas operações em HTTP, mas as principais são: POST, GET, HEAD e DELETE. Essas operações também podem ser combinadas com operações CRUD, que são operações básicas utilizadas em bancos de dados relacionais.
  • Sintaxe universal para identificar os recursos: Cada recurso é direcionado apenas pela sua URI.
  • Interface uniforme: O maior diferencial do REST em relação aos outros estilos é uma interface cliente/servidor uniforme. Para existir essa uniformidade, é necessário haver um contrato de comunicação bem definido entre os dois lados. São 4 requisitos que garantem a uniformidade da interface: Identificação dos recursos, representação dos recursos, mensagens auto-descritivas e hipermídia (HATEOAS).

Conclusão:

Se usarmos REST em nossos projetos, teremos sistemas ágeis, por causa da padronização dos processos. Além disso, nossos sistemas serão flexíveis, podendo ser implementados em diferentes tipos de sintaxes.