API de catálogo de produtos desenvolvida com ASP.NET Core, Entity Framework e MySQL.
CatalogoAPI é uma API RESTful criada para gerenciar um catálogo de produtos e suas respectivas categorias. Ela oferece endpoints para realizar operações CRUD (Criar, Ler, Atualizar e Deletar) tanto para produtos quanto para categorias, além de funcionalidades como paginação, logging customizado, tratamento de exceções e autenticação via JWT.
Este projeto foi desenvolvido como um exemplo prático de construção de APIs com a stack .NET, demonstrando o uso de boas práticas e ferramentas modernas.
- Gestão de Produtos: CRUD completo para produtos.
- Gestão de Categorias: CRUD completo para categorias.
- Paginação: Suporte para paginação nos endpoints de consulta.
- Autenticação: Endpoints protegidos com autenticação baseada em JSON Web Tokens (JWT).
- Relacionamento: Cada produto está associado a uma categoria.
- Documentação de API: Interface do Swagger e Scalar para testar os endpoints.
- Logging: Filtro de log para registrar informações sobre as requisições.
- Tratamento de Erros: Middleware para captura e tratamento global de exceções.
Siga os passos abaixo para configurar e executar o projeto em sua máquina.
- .NET 9 SDK
- MySQL Server instalado e em execução.
- Um editor de código de sua preferência (ex: Visual Studio Code ou Visual Studio)
git clone https://github.com/FM0Ura/CatalogoAPI.git
cd CatalogoAPIA API precisa da senha do seu banco de dados MySQL para se conectar. A forma recomendada para configurar isso em ambiente de desenvolvimento é usando "User Secrets" (segredos do usuário).
-
Navegue até o diretório do projeto
CatalogoAPI:cd CatalogoAPI -
Inicialize o gerenciador de segredos:
dotnet user-secrets init
-
Adicione a senha do seu usuário root do MySQL ao
secrets.json:dotnet user-secrets set "MYSQL_root_PASS" "sua_senha_secreta"
Atenção: Substitua
sua_senha_secretapela senha do seu banco de dados MySQL.
Instale o Entity Framework CLI globalmente, caso ainda não tenha feito:
dotnet tool install --global dotnet-efAs migrations do Entity Framework criarão o banco de dados catalogoDB e as tabelas necessárias.
dotnet ef database updateAgora, basta executar a API:
dotnet runA aplicação estará disponível em https://localhost:7273 (ou outra porta, verifique o console).
Você pode acessar a documentação interativa do Swagger em https://localhost:7273/swagger ou a documentação do Scalar em https://localhost:7273/scalar para testar os endpoints.
GET /Categorias: Retorna todas as categorias.GET /Categorias/pagination: Retorna categorias com paginação.GET /Categorias/{id}: Retorna uma categoria específica pelo seu ID.GET /Categorias/produtos: Retorna todas as categorias com seus respectivos produtos.POST /Categorias: Cria uma nova categoria.PUT /Categorias/{id}: Atualiza uma categoria existente.DELETE /Categorias/{id}: Deleta uma categoria.
GET /Produtos: Retorna todos os produtos.GET /Produtos/pagination: Retorna produtos com paginação.GET /Produtos/filter/preco/pagination: Filtra produtos por preço com paginação.GET /Produtos/{id}: Retorna um produto específico pelo seu ID.GET /Produtos/categoria/{id}: Retorna produtos de uma categoria específica.POST /Produtos: Cria um novo produto.PUT /Produtos/{id}: Atualiza um produto existente.DELETE /Produtos/{id}: Deleta um produto.
Este projeto está sob a licença MIT. Veja o arquivo LICENSE.txt para mais detalhes.