🚀 8.1 Arquitetura e Maturidade REST
Não basta criar um endpoint que devolve um JSON para dizer que seu sistema é RESTful. Na Engenharia Premium, seguimos o Modelo de Maturidade de Richardson, buscando sempre atingir o nível máximo de excelência.
Os Degraus da Excelência REST
Utilizamos o seguinte modelo para avaliar a qualidade de nossas APIs na Green Dog Delivery:
graph TD L0[Nível 0: O Pântano de POX - RPC sobre HTTP] --> L1[Nível 1: Recursos - Identificação por URI] L1 --> L2[Nível 2: Verbos HTTP - GET, POST, PUT, DELETE] L2 --> L3[Nível 3: HATEOAS - A Glória do REST]
Explicação dos Níveis de Elite
- Nível 1 (Recursos): Em vez de
/fazerTudo, usamos nomes para representar os objetos.- Ex:
/clientes,/pedidos,/itens.
- Ex:
- Nível 2 (Verbos e Semântica): Usamos o protocolo HTTP como ele foi desenhado.
GET: Consulta (Seguro e Idempotente).POST: Criação.PUT: Atualização total.PATCH: Atualização parcial.DELETE: Remoção.
- Nível 3 (HATEOAS): Hypermedia as the Engine of Application State. A resposta da API contém links que dizem ao cliente o que ele pode fazer a seguir (ex: após listar um cliente, a API envia o link para “fazer um pedido”).
| Recurso | Nível 2 (Comum) | Nível 3 (Premium) |
|---|---|---|
| Resposta | { "id": 1, "nome": "Rodrigo" } | { "id": 1, "nome": "Rodrigo", "_links": { "self": "/clientes/1" } } |
| Descoberta | Manual (via Docs) | Automática (via Links) |
TIP
Status Codes: O uso correto dos códigos de erro (201 Created, 204 No Content, 400 Bad Request, 404 Not Found, 403 Forbidden) é obrigatório para ser considerado um desenvolvedor de elite. No próximo capítulo, veremos como consumir esses serviços usando os novos padrões do JavaScript moderno.