API de Treinos
A API de Treinos do FitLocus fornece endpoints para criação, gerenciamento e execução de treinos na plataforma.Visão Geral
A API de Treinos permite:
- Criação e gerenciamento de treinos personalizados
- Organização de exercícios em treinos estruturados
- Atribuição de treinos a alunos
- Acompanhamento de execução de treinos
- Criação e gerenciamento de planos de treino
Modelo de Dados
TrainingDTO
O objeto TrainingDTO é utilizado para transferência de dados de treinos entre o cliente e o servidor:TrainingPlanDTO
Objeto que representa um plano de treino (conjunto de treinos organizados por dias da semana):TrainingExecutionDTO
Objeto que representa a execução de um treino:TrainingAssignmentDTO
Objeto que representa a atribuição de um treino a um aluno:Endpoints Principais
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /trainings | Lista treinos com filtros opcionais |
| GET | /trainings/{id} | Obtém detalhes de um treino específico |
| POST | /trainings | Cria um novo treino |
| PUT | /trainings/{id} | Atualiza um treino existente |
| DELETE | /trainings/{id} | Remove um treino |
| GET | /trainings/my-trainings | Lista treinos criados pelo usuário autenticado |
| POST | /trainings/{id}/assign | Atribui um treino a um aluno |
| GET | /trainings/assignments | Lista atribuições de treinos |
| POST | /trainings/{id}/execution | Registra uma execução de treino |
| GET | /trainings/{id}/executions | Lista execuções de um treino específico |
| GET | /training-plans | Lista planos de treino |
| GET | /training-plans/{id} | Obtém detalhes de um plano de treino específico |
| POST | /training-plans | Cria um novo plano de treino |
| PUT | /training-plans/{id} | Atualiza um plano de treino existente |
| DELETE | /training-plans/{id} | Remove um plano de treino |
Detalhes de Implementação
Autenticação
Todos os endpoints requerem autenticação via token JWT no cabeçalhoAuthorization:
Controle de Acesso
O acesso aos endpoints é controlado com base no tipo de usuário e propriedade do recurso:- Personal trainers podem criar, visualizar, atualizar e remover seus próprios treinos
- Personal trainers só podem atribuir treinos aos seus alunos vinculados
- Alunos só podem visualizar treinos atribuídos a eles
- Alunos só podem registrar execuções de treinos atribuídos a eles
Paginação e Ordenação
Endpoints que retornam listas de treinos suportam paginação e ordenação através dos seguintes parâmetros:page: Número da página (começando em 0)size: Tamanho da página (número de itens por página)sort: Campo e direção de ordenação (ex:name,asc)
Exemplos de Uso
Listar Treinos
Obter Detalhes de um Treino
Criar um Novo Treino
Atribuir Treino a um Aluno
Códigos de Status
| Código | Descrição |
|---|---|
| 200 | OK - A requisição foi bem-sucedida |
| 201 | Created - Um novo treino, plano ou execução foi criado com sucesso |
| 400 | Bad Request - A requisição contém dados inválidos |
| 401 | Unauthorized - Autenticação necessária |
| 403 | Forbidden - Sem permissão para acessar o recurso |
| 404 | Not Found - Treino, plano ou recurso não encontrado |
| 500 | Internal Server Error - Erro interno do servidor |
Considerações de Segurança
- Validação de Dados: Todos os dados de entrada são validados para prevenir injeção de dados maliciosos.
- Controle de Acesso: Verificações rigorosas garantem que um usuário só possa acessar e modificar seus próprios treinos ou, no caso de personal trainers, os treinos atribuídos aos seus alunos.
- Sanitização de Dados: Todos os dados de entrada são sanitizados antes de serem armazenados ou exibidos.
- HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS.