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.
- Funcionalidades
- Estrutura de Pastas
- Tecnologias e Dependências
- Instalação
- Configuração
- Como Rodar
- Testes
- Endpoints Principais
- Licença
- 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.
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
- .NET 9.0
- Entity Framework Core 9.0.0
- Pomelo.EntityFrameworkCore.MySql 9.0.0
- Microsoft.AspNetCore.Authentication.JwtBearer 9.0.0
- Swashbuckle.AspNetCore 9.0.4
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.NET.Test.Sdk 17.12.0
- MSTest 3.6.4
- Microsoft.AspNetCore.Mvc.Testing 9.0.9
-
Clone o repositório:
git clone https://github.com/seu-usuario/minimal-api.git cd minimal-api -
Instale o .NET 9.0 SDK:
-
Restaure as dependências:
dotnet restore
-
Configure o banco de dados MySQL:
- Crie um banco chamado minimal_api.
- Atualize usuário/senha em
Api/appsettings.jsonconforme necessário.
-
Execute as migrações para criar as tabelas:
dotnet ef database update --project Api
-
Configuração de conexão:
Edite os arquivos
appsettings.jsonpara ajustar a string de conexão do MySQL. -
Variáveis de ambiente:
O ambiente padrão é Development. Para rodar testes, o ambiente é Testing.
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.
Abra o Terminal na pasta \minimal-api\Test digite o seguinte comando:
dotnet testPOST /administradores/login- Autenticação de administradorGET /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)
Este projeto está sob a licença MIT.