Erros e paginação
Convenções compartilhadas por todas as rotas da API.
Formato de erro
Toda falha responde com o mesmo corpo: { "message": "...", "status": 400 }. Respostas 204 não têm corpo.
| Status | Uso típico |
|---|---|
| 400 | Validação / body inválido / JSON malformado |
| 401 | Token ausente, inválido ou expirado |
| 403 | Token válido, mas sem permissão (scope) para o recurso |
| 404 | Recurso não encontrado |
| 413 | Body acima do limite (request entity too large): 1 MB, ou 50 MB no envio de imagem |
| 415 | Charset/encoding do body não suportado |
| 429 | Limite de requisições excedido (header Retry-After, em segundos) |
| 500 | Erro interno / banco; erro inesperado responde "Internal server error" |
Paginação
| Query | Regra | Default |
|---|---|---|
| page | inteiro maior ou igual a 1 | 1 |
| limit | inteiro 1–100 | 20 |
| sort | asc ou desc | desc |
pages = ceil(total / limit) — 0 quando total = 0.
Scopes
ordermenucustomerstore

