Gerenciamento de Perfil
Esta seção detalha os endpoints para visualização e atualização de perfis de usuário na plataforma FitLocus.Visão Geral do Perfil
O perfil de usuário no FitLocus contém informações pessoais, dados físicos, configurações de conta e detalhes de assinatura. Diferentes tipos de usuário (ALUNO e PERSONAL) têm campos específicos em seus perfis.Obter Perfil do Usuário Autenticado
Endpoint
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedObter Perfil de Usuário Específico
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | number | ID do usuário |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedAtualizar Perfil do Usuário Autenticado
Endpoint
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
| Content-Type | application/json | Tipo de conteúdo da requisição |
Parâmetros da Requisição
O corpo da requisição deve conter um objeto JSON com os campos a serem atualizados:| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Não | Nome completo do usuário |
| phone | string | Não | Número de telefone |
| birthDate | string | Não | Data de nascimento (formato: YYYY-MM-DD) |
| gender | string | Não | Gênero (MASCULINO, FEMININO, OUTRO) |
| height | number | Não | Altura em centímetros |
| weight | number | Não | Peso em quilogramas |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 400 Bad RequestAtualizar Nome do Usuário
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | number | ID do usuário |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
| Content-Type | application/json | Tipo de conteúdo da requisição |
Parâmetros da Requisição
O corpo da requisição deve conter um objeto JSON com o campo a ser atualizado:| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Sim | Novo nome completo do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 400 Bad RequestAtualizar Foto de Perfil
Endpoint
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
| userId | number | ID do usuário |
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
| Content-Type | multipart/form-data | Tipo de conteúdo da requisição |
Parâmetros da Requisição
A requisição deve ser enviada comomultipart/form-data com o seguinte campo:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| file | file | Sim | Arquivo de imagem (JPG, PNG ou GIF, máx. 5MB) |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 400 Bad RequestObter Métricas do Usuário
Endpoint
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
| Authorization | Bearer | Token JWT do usuário |
Exemplo de Requisição
Resposta de Sucesso
Código: 200 OKRespostas de Erro
Código: 401 UnauthorizedImplementação no Frontend
Componente de Perfil
Upload de Foto de Perfil
Considerações de Design
A página de perfil do FitLocus segue as diretrizes de design da plataforma:- Cores: Fundo escuro (#202020), elementos de destaque em verde (#B4ED00), texto em branco (#F9F9F9)
- Tipografia: Hanken Grotesk para texto e SUPERINE para títulos
- Layout: Design minimalista com espaçamento generoso e hierarquia clara
- Componentes: Campos de formulário com bordas arredondadas, botões com feedback visual ao interagir
Considerações de Segurança
- Validação de Dados: Todos os dados de entrada são validados tanto no frontend quanto no backend para prevenir injeção de dados maliciosos.
- Controle de Acesso: Verificações rigorosas garantem que um usuário só possa acessar e modificar seu próprio perfil ou, no caso de personal trainers, os perfis de seus alunos vinculados.
- Validação de Arquivos: Uploads de imagem são validados quanto ao tipo, tamanho e conteúdo para prevenir ataques.
- 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 para proteger dados sensíveis durante a transmissão.
Troubleshooting
Problemas Comuns
- “Acesso negado”: Verifique se você está tentando acessar seu próprio perfil ou, se for um personal trainer, o perfil de um aluno vinculado a você.
- “Arquivo inválido”: Certifique-se de que a imagem está em um dos formatos permitidos (JPG, PNG, GIF) e não excede 5MB.
- “Erro ao carregar perfil”: Verifique sua conexão com a internet e se o token JWT é válido. Tente fazer login novamente.
- “Erro ao atualizar perfil”: Verifique se os dados fornecidos são válidos e estão no formato correto.
Depuração
Para depurar problemas com o perfil:- Verifique os logs do console para mensagens de erro detalhadas
- Utilize ferramentas como o Postman para testar os endpoints diretamente
- Verifique se o token JWT está sendo enviado corretamente no cabeçalho Authorization
- Confirme que os dados enviados estão no formato correto e dentro dos limites permitidos