Skip to content

Lucas-Pavao/catalogo-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CatalagoApi - REST API em .NET

Descrição

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.

Tecnologias e Práticas Aplicadas

CatalagoApi implementa diversas tecnologias e práticas para garantir uma aplicação robusta e eficiente:

Padrões de Projeto

  • 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.

Tecnologias

  • 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).

Futuras Implementações

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.

Como Testar:

Requisitos

  • .NET SDK instalado na máquina.
  • Banco de dados MySQL.

Configuração do Banco de Dados

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.

Executando a Aplicação

Para executar a aplicação, siga os passos abaixo:

  1. Abra um terminal na pasta do projeto.
  2. Execute o seguinte comando para restaurar as dependências:
dotnet restore
  1. Em seguida, execute o comando para aplicar as migrações do banco de dados:
dotnet ef database update
  1. Agora, inicie a aplicação com o seguinte comando:
dotnet run

Com estes passos concluídos, a API estará pronta para uso.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages