API REST de catálogo de produtos e categorias com ASP.NET Core 6, controllers assíncronos e Entity Framework Core sobre MySQL.
Projeto de estudo (abril/2022). É a segunda versão do APICatalogo, migrada para .NET 6 e com consultas otimizadas. A versão seguinte, com Minimal API e JWT, é o CatalogAPI2.
- Migração para .NET 6, com
Program.csenxuto (semStartup), nullable e implicit usings - Controllers totalmente assíncronos (
ToListAsync,FindAsync,SaveChangesAsync) - Consultas com
AsNoTrackinge limite de resultados (Take) nas listagens ReferenceHandler.IgnoreCyclese[JsonIgnore]na navegação para evitar ciclos no JSON- Preço com precisão fixa (
decimal(10,2)) e migrations que populam categorias e produtos
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/categories |
Lista até 10 categorias |
| GET | /api/categories/products |
Lista as categorias com os produtos |
| GET | /api/categories/{id} |
Busca uma categoria |
| POST | /api/categories |
Cria uma categoria |
| PUT | /api/categories/{id} |
Atualiza uma categoria |
| DELETE | /api/categories/{id} |
Remove uma categoria |
| GET | /api/products |
Lista até 20 produtos |
| GET | /api/products/{id} |
Busca um produto |
| POST | /api/products |
Cria um produto |
| PUT | /api/products/{id} |
Atualiza um produto |
| DELETE | /api/products?id={id} |
Remove um produto |
- .NET 6 / ASP.NET Core Web API
- Entity Framework Core 6 com Pomelo (MySQL)
- Swashbuckle (Swagger)
Pré-requisitos: SDK do .NET 6 e um MySQL rodando.
- Ajuste a connection string
DefaultConnectionemCatalogAPI/appsettings.json. - Crie e popule o banco:
dotnet tool install --global dotnet-ef dotnet ef database update --project CatalogAPI
- Rode a API e abra o Swagger em
/swagger:dotnet run --project CatalogAPI