Skip to content

Aplicação Minimal API desenvolvida em .NET 9, com autenticação JWT, integração com MySQL e testes automatizados utilizando MSTest.

Notifications You must be signed in to change notification settings

MarcioCosta013/dotnet-minimalAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimal API - Projeto de Gerenciamento de Veículos

.Net MySQL JWT

Projeto Original - DIO

Este projeto é uma aplicação Minimal API desenvolvida em .NET 9, com autenticação JWT, integração com MySQL e testes automatizados utilizando MSTest. O objetivo é fornecer uma API simples e eficiente para cadastro e gerenciamento de administradores e veículos. Diferente do Projeto original, nesse adicionei mais endpoints a entidade Administrador (possibilitando Alterrar e Apagar contas) e na parte de Testes cobrir todas as outras funções que o projeto original não tinha implementado.


Sumário


Funcionalidades

  • Cadastro, autenticação e listagem de administradores.
  • Cadastro, atualização, listagem e remoção de veículos.
  • Autenticação JWT com controle de acesso por perfil (Adm, Editor).
  • Documentação automática via Swagger.
  • Testes automatizados de unidade e integração.

Estrutura de Pastas

minimal-api/
├── Api/
│   ├── appsettings.Development.json
│   ├── appsettings.json
│   ├── minimal-api.csproj
│   ├── Program.cs
│   ├── README.md
│   ├── Startup.cs
│   ├── Dominio/
│   │   ├── DTOs/
│   │   ├── Entidades/
│   │   ├── Enuns/
│   │   ├── Interfaces/
│   │   ├── ModelViews/
│   │   └── Servicos/
│   ├── Infraestrutura/
│   │   └── Db/
│   ├── Migrations/
│   ├── Properties/
│   └── bin/ e obj/
├── Test/
│   ├── appsettings.Test.json
│   ├── minimal_api.dump.sql
│   ├── MSTestSettings.cs
│   ├── test.csproj
│   ├── Domain/
│   │   ├── Entidades/
│   │   └── Servicos/
│   ├── Helpers/
│   ├── Mocks/
│   ├── Requests/
│   └── TestResults/
├── minimal-api.sln
└── README.md

Tecnologias e Dependências

Backend

Testes


Instalação

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/minimal-api.git
    cd minimal-api
    
    
  2. Instale o .NET 9.0 SDK:

    Download .NET 9.0

  3. Restaure as dependências:

    dotnet restore
    
  4. Configure o banco de dados MySQL:

    • Crie um banco chamado minimal_api.
    • Atualize usuário/senha em Api/appsettings.json conforme necessário.
  5. Execute as migrações para criar as tabelas:

    dotnet ef database update --project Api

Configuração

  • Configuração de conexão:

    Edite os arquivos appsettings.json para ajustar a string de conexão do MySQL.

  • Variáveis de ambiente:

    O ambiente padrão é Development. Para rodar testes, o ambiente é Testing.

Como Rodar

API

Abra o Terminal na pasta \minimal-api\Api digite o seguinte comando:

dotnet run 

ou

dotnet watch run 

Acesse http://localhost:5038/swagger para visualizar a documentação interativa.

Testes

Abra o Terminal na pasta \minimal-api\Test digite o seguinte comando:

dotnet test

Endpoints Principais

  • POST /administradores/login - Autenticação de administrador
  • GET /administradores - Listagem de administradores (requer token)
  • POST /administradores - Cadastro de administrador (requer token)
  • GET /administrador/{id} - Busca administrador por ID (requer token)
  • POST /veiculos - Cadastro de veículo (requer token)
  • GET /veiculos - Listagem de veículos (requer token)
  • GET /veiculos/{id} - Busca veículo por ID (requer token)
  • PUT /veiculos/{id} - Atualização de veículo (requer token)
  • DELETE /veiculos/{id} - Remoção de veículo (requer token)

Os implementados por mim:

  • PUT /administradores/{id} - Atualização de administrador (requer token)
  • DELETE /administradores/{id} - Remoção de administrador (requer token)

Licença

Este projeto está sob a licença MIT.

About

Aplicação Minimal API desenvolvida em .NET 9, com autenticação JWT, integração com MySQL e testes automatizados utilizando MSTest.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages