Iniciante Arquitetura de Sistemas
API REST
REST é o estilo mais usado para construir APIs na web. A ideia central é tratar tudo como recursos (usuários, pedidos, produtos) e manipulá-los usando os verbos do HTTP. Simples e previsível.
Recursos
Cada recurso tem um endereço (URL). Use substantivos no plural:
/usuarios -> todos os usuários
/usuarios/42 -> o usuário de id 42
/usuarios/42/pedidos -> pedidos do usuário 42
Evite verbos na URL. /criarUsuario está errado. O verbo vem do método HTTP.
Verbos HTTP
- GET: lê dados. Não muda nada.
- POST: cria um novo recurso.
- PUT/PATCH: atualiza um recurso.
- DELETE: remove um recurso.
POST /usuarios HTTP/1.1
Content-Type: application/json
{ "nome": "Ana", "email": "ana@exemplo.com" }
HTTP/1.1 201 Created
Location: /usuarios/42
{ "id": 42, "nome": "Ana" }
Status codes
O status diz o que aconteceu:
- 200 OK: deu certo.
- 201 Created: recurso criado.
- 204 No Content: deu certo, sem corpo (ex.: DELETE).
- 400 Bad Request: pedido malformado.
- 401 / 403: não autenticado / sem permissão.
- 404 Not Found: não existe.
- 422: dados inválidos.
- 500: erro no servidor.
Stateless
Cada requisição é independente. O servidor não guarda memória do que veio antes. Tudo que ele precisa (token, dados) vem na própria requisição. Isso facilita escalar: qualquer servidor atende qualquer pedido.
Boas práticas de URL
- Substantivos no plural:
/produtos. - Filtros e ordenação na query string:
/produtos?categoria=livros&sort=preco. - Paginação:
/produtos?pagina=2&limite=20. - Versione:
/v1/produtos. - Erros com corpo JSON claro, sem vazar detalhes internos.
Vantagens
- Padronizado e fácil de entender.
- Usa só HTTP, funciona em qualquer cliente.
- Stateless escala bem.
Desvantagens
- Pode trazer dados demais ou de menos por chamada.
- Várias requisições para juntar dados relacionados.
REST brilha pela simplicidade. Siga as convenções e sua API fica intuitiva para qualquer desenvolvedor.