[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)
  • 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