[API] User Manager - Sardinha-Tank/API-UserManager GitHub Wiki
API REST em .NET 5, usando banco de dados MySQL e autenticação via JWT, construída em 4 camadas:
- Application (Porta de entrada)
- Services (Regras de negócio)
- Domain (Entidades)
- Infrastructure (Banco de dados)
Funcionalidades implementadas:
- Autenticação JWT (Bearer)
- Utilização do Azure Key Vault + Azure AD para guardar os segredos da aplicação
- Criptografia de dados sensíveis
Futuras melhorias identificadas:
- Factory messages para organizar mensagens de respostas da API e evitar replicar código
- Separar injeção de dependências (talvez não faça sentido se usarmos a abordagem de microsserviços)
- Melhorar update, sem obrigatoriedade de enviar todos os campos na requisição.
- Trabalhar em estrutura de container (Docker)
- Gestão de usuários da API em banco de dados
- Adicionar Pipeline CI/CD via Github Actions + Azure DevOps
- Criar repositório no GitHub para usar no pipeline
- Adicionar camada de testes
- Unitários
- Criar um usuário válido
- Tentar criar um usuário quando ele já existe
- Criar um usuário inválido
- Atualizar um usuário válido
- Atualizar um usuário que não existe
- Atualizar um usuário com dados inválidos
- Remover um usuário
- Selecionar um usuário por ID
- Tentar selecionar um usuário por ID que não exista
- Selecionar um usuário por e-mail
- Tentar selecionar um usuário por e-mail que não exista
- Selecionar todos os usuários
- Tentar selecionar todos os usuários sem que existam usuários cadastrados
- Buscar um usuário por e-mail (LIKE)
- Tentar buscar um usuário por e-mail que não exista
- Buscar um usuário por nome (LIKE)
- Tentar buscar um usuário por nome que não exista
- Integração
- Interface (Selenium)
- Carga (JMeter)
- Unitários
- Método de login e permissão de usuários (.NET Identity)
- Paginação e ordenação em resultados de lista
- Logs
- Revisar HTTP responses
- OAuth
Swagger: https://sdusermanagerapi.azurewebsites.net/swagger
Status atual: Stopped