1 min read

REST APIs

REST (Representational State Transfer) é um estilo arquitetural criado por Roy Fielding em 2000, muito usado no desenvolvimento de APIs modernas. Ele segue o modelo cliente-servidor e utiliza o protocolo HTTP para comunicação, geralmente com dados em formato JSON.

Na arquitetura REST, os principais métodos HTTP (GET, POST, PUT, PATCH e DELETE) são usados para acessar e manipular recursos — entidades da API que podem ser documentos únicos, coleções ou ações específicas (controladores). Por exemplo, “clientes” é uma coleção de recursos acessível pelo caminho /clientes, enquanto um cliente específico é um recurso único acessado por /clientes/{id-do-cliente}. Um cliente pode ter uma subcoleção de “contas”, que fica em /clientes/{cliente-id}/contas, e cada conta individual pode ser manipulada em /clientes/{cliente-id}/contas/{conta-id}.

Uma API RESTful deve seguir boas práticas de estruturação, como usar nomes de recursos no plural para coleções, letras minúsculas, hífens para legibilidade e manter consistência nas URLs.

Para ser considerada RESTful, uma API precisa seguir alguns princípios básicos:

  • Interface uniforme: usar métodos HTTP corretamente e manter uma estrutura consistente para manipular recursos.
  • Cliente-servidor: separar a lógica de negócio (servidor) da interface do usuário (cliente).
  • Stateless: cada requisição deve conter todas as informações necessárias, sem depender de dados mantidos no servidor entre chamadas.
  • Cacheável: permitir o uso de cache para melhorar o desempenho.
  • Arquitetura em camadas: permitir que o sistema seja composto por diferentes camadas com responsabilidades distintas.
  • HATEOAS (opcional): incluir links nos dados de resposta para que o cliente possa descobrir ações possíveis dinamicamente.

Além da estrutura e dos princípios, as respostas do servidor são parte fundamental da comunicação. Cada requisição gera um código de status HTTP, que indica o resultado da operação:

  • 200 (OK): requisição bem-sucedida, com dados retornados.
  • 201 (Created): novo recurso criado com sucesso.
  • 204 (No Content): operação concluída, mas sem retorno de dados.
  • 202 (Accepted): requisição aceita, mas ainda em processamento, por exemplo quando a ação é enfileirada.
  • 400 (Bad Request): erro na requisição, como dados inválidos.
  • 401 (Unauthorized): autenticação necessária.
  • 403 (Forbidden): acesso negado mesmo com autenticação.
  • 404 (Not Found): recurso não encontrado.
  • 500 (Internal Server Error): erro inesperado no servidor.

Esses retornos ajudam o cliente a interpretar corretamente a resposta da API e tomar decisões apropriadas. Assim, o REST promove simplicidade e uma comunicação clara entre sistemas, sendo uma abordagem muito eficiente no desenvolvimento de APIs web.

 Para saber mais: