CatalagoApi é uma REST API desenvolvida em .NET para gerenciar um catálogo de produtos. Esta API permite realizar operações CRUD (Create, Read, Update, Delete) em produtos, categorias e outras entidades relacionadas. Além disso, o projeto visa implementar práticas avançadas de desenvolvimento, como o uso de padrões de projeto, tecnologias modernas e abordagens assíncronas para proporcionar uma aplicação robusta, escalável e de alto desempenho.
CatalagoApi implementa diversas tecnologias e práticas para garantir uma aplicação robusta e eficiente:
- Repository e Unit of Work: A API utiliza o padrão Repository para isolar a lógica de acesso a dados, proporcionando maior modularidade e facilidade de teste. O padrão Unit of Work é empregado para gerenciar transações e garantir a consistência dos dados.
- JSON Web Tokens (JWT): A autenticação baseada em JWT está sendo implementada para fornecer um mecanismo seguro de autenticação e autorização.
- AutoMapper: O AutoMapper é utilizado para mapear objetos de transferência de dados (DTOs) para entidades de domínio e vice-versa, simplificando o processo de transferência de dados entre as camadas da aplicação.
- DTOs (Data Transfer Objects): Os DTOs são utilizados para definir objetos que serão transferidos entre a API e o cliente, mantendo uma separação clara entre a lógica de negócios da API e os dados que são enviados pela rede.
- Programação Assíncrona: O uso de operações assíncronas é adotado para melhorar o desempenho e a escalabilidade da API.
- Paginação, Filtro e Ordenação: Funcionalidades de paginação, filtro e ordenação são implementadas para facilitar a manipulação dos recursos da API e proporcionar uma melhor experiência de usuário.
- CORS (Cross-Origin Resource Sharing): O CORS será configurado para permitir que a API seja acessada por clientes de diferentes origens, garantindo a segurança e a integridade dos dados.
- Rate Limiting: Mecanismos de Rate Limiting serão implementados para evitar abusos de solicitações à API, garantindo uma distribuição equilibrada do tráfego e prevenindo possíveis ataques de negação de serviço (DoS).
Além das tecnologias e práticas já mencionadas, o projeto tem planos para adicionar novas funcionalidades e melhorias, incluindo:
- Refinamento da segurança utilizando JWT, CORS e Rate Limiting para garantir uma camada robusta de proteção.
- Melhorias na documentação da API para facilitar o uso e entendimento por parte dos desenvolvedores.
- Implementação de testes automatizados para garantir a qualidade e a robustez do código.
- Exploração de outras tecnologias e padrões de projeto que possam agregar valor ao projeto e à experiência do usuário.
- .NET SDK instalado na máquina.
- Banco de dados MySQL.
Antes de começar, é necessário configurar o banco de dados MySQL. Abra o arquivo appsettings.json
no projeto e altere as configurações de conexão com o banco de dados:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=SeuBancoDeDados;User Id=SeuUsuario;Password=SuaSenha;"
},
// ... outras configurações ...
}
Certifique-se de substituir "SeuBancoDeDados", "SeuUsuario" e "SuaSenha" pelas informações corretas do seu banco de dados MySQL.
Para executar a aplicação, siga os passos abaixo:
- Abra um terminal na pasta do projeto.
- Execute o seguinte comando para restaurar as dependências:
dotnet restore
- Em seguida, execute o comando para aplicar as migrações do banco de dados:
dotnet ef database update
- Agora, inicie a aplicação com o seguinte comando:
dotnet run
Com estes passos concluídos, a API estará pronta para uso.