A .NET 8 backend organized under backend/ with Domain, Application, Infrastructure, and API projects. The API exposes authentication endpoints backed by Entity Framework Core and MySQL.
A .NET 8 backend organized under backend/ with Domain, Application, Infrastructure, and API projects. The API exposes authentication endpoints backed by SQLite and Entity Framework Core migrations.
backend/Togo.sln– solução contendo todos os projetos do back-end.backend/src/Togo.Domain– entidades e regras de negócio.backend/src/Togo.Application– interfaces e casos de uso.backend/src/Togo.Infrastructure– EF Core (MySQL), repositórios e segurança.backend/src/Togo.Infrastructure– EF Core (SQLite), repositórios e segurança.backend/src/Togo.Api– Web API com Swagger, login e endpoint de perfil.
- .NET SDK 8.0 ou superior
- Servidor MySQL acessível em
localhost:3306com o schema e usuário:- Database:
togo - User:
togo_app - Password:
Togo@12345
- Database:
- (Opcional) Ferramenta
dotnet-efinstalada globalmente para gerenciar migrations
A connection string padrão está definida em backend/src/Togo.Api/appsettings.json e appsettings.Development.json:
Server=localhost;Port=3306;Database=togo;User=togo_app;Password=Togo@12345;SslMode=None;
Na inicialização, a API aplica Database.Migrate() para garantir que as tabelas existam e faz seed do usuário administrador caso a tabela Users esteja vazia.
- Restaurar dependências e (opcional) aplicar migrations manualmente:
- (Opcional) Ferramentas
dotnet-efinstaladas globalmente para gerenciar migrations
O banco padrão usa SQLite em togo.db (ao lado do executável). As migrations já estão incluídas no projeto. Na inicialização, a API verifica se há migrations compiladas; se houver, ela as aplica automaticamente. Se nenhum script de migration estiver presente (por exemplo, em um build sem ferramentas dotnet-ef), a API cai para EnsureCreated e cria as tabelas a partir do modelo, evitando falhas de tabela ausente.
O banco padrão usa SQLite em togo.db (ao lado do executável). As migrations já estão incluídas no projeto.
-
Restaurar dependências e aplicar migrations manualmente (opcional quando executar a API, pois ela aplica automaticamente):
dotnet restore backend/Togo.sln dotnet ef database update --project backend/src/Togo.Infrastructure/Togo.Infrastructure.csproj --startup-project backend/src/Togo.Api/Togo.Api.csproj
-
Usuário inicial de teste
- Email:
admin@togo.com - Email:
admin@togo.local - Senha:
ChangeMe123!
A aplicação aplica as migrations e cria esse usuário automaticamente na inicialização caso a tabela
Usersesteja vazia. - Email:
Dentro do repositório, execute:
dotnet run --project backend/src/Togo.Api/Togo.Api.csprojA API ficará disponível em http://localhost:5000 (HTTP) e https://localhost:7000 (HTTPS por padrão do Kestrel).
-
Autenticação (alias
/logine rota principal/api/auth/login):curl -X POST http://localhost:5000/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@togo.com","password":"ChangeMe123!"}'
-
Autenticação:
curl -X POST http://localhost:5000/login \ -H "Content-Type: application/json" \ -d '{"email":"admin@togo.local","password":"ChangeMe123!"}'
O token retornado é temporário e deve ser enviado em
Authorization: Bearer {token}. -
Perfil do usuário autenticado:
curl http://localhost:5000/api/user/me -H "Authorization: Bearer {token}"
Arquivos do projeto de console original foram removidos. Utilize apenas a solução em backend/Togo.sln e os projetos contidos em backend/src/.