REST: Conceito e fundamentos

REST: Conceito e fundamentos
Guilherme Lima
Guilherme Lima

Compartilhe

REST(Representational State Transfer, que significa Transferência Representacional de Estado) é um modelo de arquitetura e não uma linguagem ou tecnologia de programação, que fornece diretrizes para que os sistemas distribuídos se comuniquem diretamente usando os princípios e protocolos existentes da Web sem a necessidade de SOAP ou outro protocolo sofisticado.

A origem do termo REST

Os conceitos do REST foram submetidos à tese de doutorado de Roy Fielding nos anos 2000, onde o princípio fundamental é usar o protocolo HTTP para comunicação de dados.

A arquitetura REST é simples e fornece acesso aos recursos para que o cliente REST acesse e renderize os recursos no lado do cliente. No estilo REST, URI ou IDs globais ajudam a identificar cada recurso.

Esta arquitetura usa várias representações de recursos para representar seu tipo, como XML, JSON, Texto, Imagens e assim por diante.

Vale ressaltar que o REST não se limita a solicitações e respostas de registros. Também é possível inserir um novo registro ou deletar um já existente.

Banner promocional da Alura, com chamada para um evento ao vivo no dia 12 de fevereiro às 18h30, com os dizeres

Responsabilidades no REST

Existe no REST um princípio chamado STATELESSNESS (sem estado), onde o servidor não precisa saber em qual estado o cliente está e vice-versa. Mas o que é um servidor e um cliente?

Cliente: é o componente solicitante de um serviço e envia solicitações para vários tipos de serviços ao servidor.

Servidor: É o componente que é o provedor de serviços e fornece continuamente serviços ao cliente conforme as solicitações

Nesta arquitetura ou modelo, cliente-servidor ajuda na separação de responsabilidades entre a interface do usuário e o armazenamento de dados. Ou seja, quando uma solicitação REST é realizada, o servidor envia uma representação dos estados que foram requeridos.

Não há limite superior no número de clientes que podem ser atendidos por um único servidor. Também não é obrigatório que o cliente e o servidor residam em sistemas separados.

A comunicação entre cliente e servidor ocorre através da troca de mensagens usando um padrão de solicitação-resposta. O cliente basicamente envia uma solicitação de serviço e o servidor retorna uma resposta.

Requisições e comunicações

O REST precisa que um cliente faça uma requisição para o servidor para enviar ou modificar dados. Um requisição consiste em:

  • Um verbo ou método HTTP, que define que tipo de operação o servidor vai realizar;
  • Um header, com o cabeçalho da requisição que passa informações sobre a requisição;
  • Um path (caminho ou rota) para o servidor, como por exemplo https://www.alura.com.br/artigos/golang-trabalhando-com-datas;
  • Informação no corpo da requisição, sendo esta informação opcional.

Métodos HTTP

Em aplicação REST, os métodos mais utilizados são:

  • O método GET é o método mais comum, geralmente é usado para solicitar que um servidor envie um recurso;
  • O método POST foi projetado para enviar dados de entrada para o servidor. Na prática, é frequentemente usado para suportar formulários HTML;
  • O método PUT edita e atualiza documentos em um servidor;
  • O método DELETE que como o próprio nome já diz, deleta certo dado ou coleção do servidor.

Neste link você encontrará a lista completa de todos os métodos.

Códigos de Respostas

Cada resposta que a aplicação REST retorna, é enviado um código definindo o status da requisição. Por exemplo:

  • 200 (OK), requisição atendida com sucesso;
  • 201 (CREATED), objeto ou recurso criado com sucesso;
  • 204 (NO CONTENT), objeto ou recurso deletado com sucesso;
  • 400 (BAD REQUEST), ocorreu algum erro na requisição (podem existir inumeras causas);
  • 404 (NOT FOUND), rota ou coleção não encontrada;
  • 500 (INTERNAL SERVER ERROR), ocorreu algum erro no servidor.

Estes são os principais, porém neste link você encontrará a lista completa do código de cada requisição.

Conclusão

Neste artigo, apresentamos a origem, conceitos e os principais fundamentos do REST. Os cursos de programação da Alura podem ajudar você a começar, aprender e se desenvolver em tecnologia e, além disso, depois você pode se aprofundar e utilizar essa arquitetura no gerenciamento de estados do React, por exemplo.

Guilherme Lima
Guilherme Lima

Guilherme é desenvolvedor de software formado em Sistemas de Informação e possui experiência em programação usando diferentes tecnologias como Python, Javascript e Go. Criador de mais de 30 cursos de diferentes áreas da plataforma com foco no treinamento de profissionais de TI, como Data Science, Python para web com Django e Django Rest, jogos com Javascript, Infraestrutura como código com Terraform e Ansible, Orientação a Objetos com Go. Além disso, é um dos instrutores da Imersão Dev da Alura.

Veja outros artigos sobre Programação