Skip to content

Guia de API

Consulte o Guia de API completo para detalhes sobre cada endpoint.


Resumo de Endpoints

Todas as rotas usam o prefixo /api/v1. Autenticação via Authorization: Bearer <JWT> + header X-Device-Id.

Health & Meta

MétodoRotaRolesDescrição
GET/api/v1/healthPúblicoHealth check do serviço
GET/.well-known/security.txtPúblicoRFC 9116

Autenticação

MétodoRotaRolesDescrição
POST/api/v1/auth/loginPúblicoLogin (email + senha) — rate limit: 5/min
POST/api/v1/auth/refreshPúblicoRenovar access token — rate limit: 10/min
POST/api/v1/auth/revokeAutenticadoRevogar sessão atual
POST/api/v1/session/validateAutenticadoValidar sessão ativa

Alunos

MétodoRotaRolesDescrição
GET/api/v1/studentsAutenticadoListar alunos (paginado, busca)
POST/api/v1/studentsADMIN, CADASTROCriar aluno
PATCH/api/v1/students/:studentIdADMIN, CADASTROAtualizar aluno
POST/api/v1/students/:studentId/deleteADMINSoft-delete aluno (justificativa obrigatória)

Chamada

MétodoRotaRolesDescrição
POST/api/v1/attendance/eventsCHAMADOR, ADMINMarcar presença de aluno

Turmas

MétodoRotaRolesDescrição
GET/api/v1/classesAutenticadoListar turmas
POST/api/v1/classesADMINCriar turma
PATCH/api/v1/classes/:classIdADMINAtualizar turma
POST/api/v1/classes/:classId/deleteADMINSoft-delete turma

Núcleos

MétodoRotaRolesDescrição
GET/api/v1/nucleiAutenticadoListar núcleos
POST/api/v1/nucleiADMINCriar núcleo
PATCH/api/v1/nuclei/:nucleusIdADMINAtualizar núcleo
POST/api/v1/nuclei/:nucleusId/deleteADMINSoft-delete núcleo

Usuários

MétodoRotaRolesDescrição
GET/api/v1/usersADMINListar usuários
POST/api/v1/usersADMINCriar usuário
PATCH/api/v1/users/:userIdADMINAtualizar usuário
POST/api/v1/users/:userId/reset-passwordADMINResetar senha
POST/api/v1/users/:userId/deactivateADMINDesativar usuário

Roles

MétodoRotaRolesDescrição
GET/api/v1/rolesADMINListar roles
POST/api/v1/rolesADMINCriar role customizada
PATCH/api/v1/roles/:roleNameADMINAtualizar role
DELETE/api/v1/roles/:roleNameADMINExcluir role (não-sistema)

Sincronia

MétodoRotaRolesDescrição
POST/api/v1/sync/eventsCHAMADOR, ADMIN, CADASTROWrapper batch — processa múltiplos eventos
POST/api/v1/sync/eventAutenticadoProcessa 1 evento atomicamente via D1.batch()

Dev

MétodoRotaRolesDescrição
POST/_seedSeed de dados demo (apenas desenvolvimento)

Cabeçalhos Obrigatórios (Requisições Autenticadas)

HeaderValor
AuthorizationBearer <accessToken>
X-Device-IdUUID v4 identificando o dispositivo
Idempotency-KeyUUID v4 (todas as mutações: POST, PATCH)

Formato de Erro

Todos os erros seguem o envelope:

json
{
  "error": "ERROR_CODE",
  "message": "Descrição legível",
  "details": {}
}
StatusCódigoSignificado
400VALIDATION_FAILEDBody inválido ou header obrigatório ausente
401UNAUTHORIZEDToken ausente, inválido ou expirado
401COMPROMISED_SESSIONRefresh token reutilizado (possível roubo)
403FORBIDDEN_ROLERole sem permissão para o endpoint
404NOT_FOUNDRota inexistente
409IDEMPOTENCY_KEY_REUSED_WITH_DIFFERENT_PAYLOADChave de idempotência reutilizada com payload diferente
500CONFIG_ERRORErro de configuração do servidor

Fonte: router.ts + workers/CONTEXT.md

Distribuído sob licença MIT.