API Development Standard¶
Objetivo¶
Definir o padrão oficial para desenvolvimento, documentação, versionamento, segurança e manutenção das APIs da CoreFlow Platform.
Este documento é obrigatório para todos os produtos.
Arquitetura¶
Todas as APIs deverão seguir:
- REST
- Stateless
- JSON
- API First
- Versionamento
- OpenAPI
Framework¶
Obrigatório:
- Django REST Framework
Versionamento¶
Toda API deverá possuir versão.
Formato:
Exemplos:
É proibido criar endpoints sem versão.
Convenção de URLs¶
Utilizar sempre substantivos.
Correto:
Incorreto:
Métodos HTTP¶
| Método | Finalidade |
|---|---|
| GET | Consultar |
| POST | Criar |
| PUT | Atualização completa |
| PATCH | Atualização parcial |
| DELETE | Exclusão lógica quando aplicável |
Estrutura das Respostas¶
Sucesso¶
Erro¶
{
"success": false,
"message": "Erro de validação.",
"data": null,
"errors": [
{
"field": "email",
"message": "E-mail inválido."
}
]
}
Paginação¶
Obrigatória para listagens.
Formato padrão:
Filtros¶
Utilizar:
- Query Parameters
Exemplo:
Ordenação¶
Formato:
Pesquisa¶
Formato:
Autenticação¶
Obrigatória.
Padrão:
- JWT
Fluxo:
Autorização¶
Obrigatória.
Baseada em:
- RBAC
Nenhum endpoint deverá depender apenas de autenticação.
Permissões¶
Toda View deverá possuir:
Nunca permitir acesso implícito.
Serializer¶
Responsável apenas por:
- validação
- serialização
- desserialização
Nunca implementar regra de negócio.
Views¶
Responsáveis apenas por:
- receber requisição
- validar permissões
- chamar Services
- retornar resposta
Nunca implementar regra de negócio.
Services¶
Toda regra de negócio deverá estar em:
Selectors¶
Consultas complexas.
Somente leitura.
Repositories¶
Persistência especializada.
Uploads¶
Obrigatoriamente:
Nunca enviar arquivos em Base64, salvo necessidade técnica documentada.
Datas¶
Formato:
Exemplo:
Valores Monetários¶
Sempre:
String JSON representando Decimal.
Exemplo:
Logs¶
Toda API deverá registrar:
- usuário
- endpoint
- método
- duração
- código HTTP
- IP
Auditoria¶
Obrigatória para:
- criação
- alteração
- exclusão
- aprovação
- cancelamento
HTTP Status¶
| Código | Utilização |
|---|---|
| 200 | OK |
| 201 | Criado |
| 204 | Sem conteúdo |
| 400 | Requisição inválida |
| 401 | Não autenticado |
| 403 | Sem permissão |
| 404 | Não encontrado |
| 409 | Conflito |
| 422 | Erro de validação |
| 500 | Erro interno |
Documentação¶
Toda API deverá possuir documentação OpenAPI.
Obrigatório informar:
- objetivo
- parâmetros
- respostas
- exemplos
- autenticação
- permissões
Performance¶
Priorizar:
- paginação
- cache
- consultas otimizadas
- compressão
- índices
Segurança¶
Obrigatório:
- HTTPS
- JWT
- Rate Limit
- Validação de entrada
- Sanitização
- Proteção contra Injection
- Proteção contra Mass Assignment
Integrações¶
Toda integração externa deverá possuir:
- timeout
- retry
- logs
- tratamento de exceções
Versionamento¶
Nunca alterar comportamento de uma versão existente.
Criar:
quando houver quebra de compatibilidade.
Anti-patterns¶
É proibido:
- lógica de negócio em Views
- acesso direto ao banco nas Views
- endpoints sem autenticação
- SQL em Views
- respostas inconsistentes
- URLs com verbos
- ausência de documentação
- ausência de testes
Objetivo Final¶
Garantir APIs previsíveis, seguras, performáticas, versionadas e consistentes para todos os produtos da CoreFlow Platform.