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: