Template: API¶
Objetivo¶
Padronizar a documentação de rotas — tanto URLs Django server-rendered quanto endpoints DRF, conforme o que o módulo real tem.
Módulo sem API REST própria (maioria dos módulos hoje)¶
Usar uma tabela simples de rotas Django, como no exemplo real de Accounts:
# Interfaces e rotas
Não existe API REST própria do módulo `<modulo>`. A interface é composta por URLs Django em `apps/<modulo>/urls.py`:
| Rota | Nome | Comportamento |
|---|---|---|
| `/<rota>/` | `<modulo>:<nome>` | O que a rota faz |
Módulo com API REST (DRF)¶
# API
Base: `/api/v1/<recurso>/`
## `GET /api/v1/<recurso>/`
Lista `<Recurso>`, paginado (`paginate_by = 10`).
**Autenticação:** obrigatória. **Permissão:** `<permissão real>`.
### Resposta 200
```json
{
"success": true,
"data": {"results": [], "count": 0},
"errors": [],
"message": ""
}
```
## `POST /api/v1/<recurso>/`
Cria `<Recurso>`. Gera log de auditoria (ação 4 — Inclusão).
### Corpo da requisição
| Campo | Tipo | Obrigatório |
|---|---|---|
| ... | ... | ... |
### Erros possíveis
| Código | Motivo |
|---|---|
| 400 | Validação falhou |
| 403 | Sem permissão |
Regra de preenchimento¶
Verificar urls.py/api/urls.py e api/viewsets.py/api/serializers.py reais antes de escrever — nunca documentar uma rota que não existe no código, nem inventar um formato de resposta diferente do padrão real (success/data/errors/message, ver Backend Standard).
Referências¶
- Accounts — Interfaces e rotas — exemplo real sem API
- API REST v1 do CoreFlow CRM — exemplo real com API