Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diegomaiasantos/api-catalogo-produto
Nesse projeto, estou desenvolvendo uma API que tem como principal função realizar um CRUD nas categorias e produtos de um estabelecimento.
https://github.com/diegomaiasantos/api-catalogo-produto
csharp dotnet entity-framework git sql-server swagger visual-studio
Last synced: 4 days ago
JSON representation
Nesse projeto, estou desenvolvendo uma API que tem como principal função realizar um CRUD nas categorias e produtos de um estabelecimento.
- Host: GitHub
- URL: https://github.com/diegomaiasantos/api-catalogo-produto
- Owner: DiegoMaiaSantos
- License: mit
- Created: 2022-09-22T12:25:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-01T20:00:48.000Z (about 2 years ago)
- Last Synced: 2023-10-15T12:19:15.636Z (over 1 year ago)
- Topics: csharp, dotnet, entity-framework, git, sql-server, swagger, visual-studio
- Language: C#
- Homepage:
- Size: 84 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
API Catalogo Produto
[![GitHub license](https://img.shields.io/github/license/DiegoMaiaSantos/api-catalogo-produto)](https://github.com/DiegoMaiaSantos/api-catalogo-produto/blob/main/LICENSE)
Esse projeto tem como principal objetivo, desenvolver meus conhecimentos adquiridos diariamente no estágio, então peguei uma ideia simples e utilizei grande parte da experiência que tenho tido, para fixar melhor os estudos e as rotinas diárias de um programador.
Inicialmente planejava utilizar a abordagem code first, usando migrations do Entity framework para criar o banco de dados e suas tabelas, de maneira quase que automática, mas como queria ampliar o conhecimento na abordagem de mapeamentos com o banco sendo criado manualmente no SQL Server, fiz o banco CatalogoDB e suas tabelas, sendo CATEGORIA E PRODUTO, fiz o desenho do relacionamento das entidades (desenho está logo abaixo) e passo detalhes sobre informações de cada coluna, também criei a FOREIGN KEY (PK_PRODUTO_CATEGORIA) para trabalhar as trocas de informações entre as tabelas. Caso tenha interesse em clonar a API, é necessário criar o mesmo banco na sua máquina, lembrando que a configuração é toda realizada para SQL Server.
Essa API (Application Programming Interface) serve como um intermediário de um software que vai permitir que dois aplicativos possam se comunicar. Eu fiz apenas o backend, mas se o caso fosse outro, onde tivesse desenvolvido a aplicação e a interface, front e back, essa API iria receber as requisições de uma interface e dentro de toda a aplicação, ela iria percorrer os controllers que iria buscar na services, as regras do negócio, praticamente é onde fica a maior parte da lógica e depois iria nos repository, que é onde acontece a troca de informações da aplicação com o banco de dados, e assim ela retorna fazendo o inverso do que foi caminhado até chegar novamente nas controllers e repassar a informação requisitada pela interface. No caso da minha API, é possível buscar uma lista, buscar pelo id, criar, atualizar ou deletar, seja uma categoria ou um produto, mais conhecido como um CRUD.
Usei o modelo de arquitetura DDD (Domain Driven Design) para manter a organização e manutenção dos processos da API. Esse modelo tem como característica facilitar a implementação de regras e processos complexos, onde trás a divisão das responsabilidades por camadas, e pode ser usado por qualquer tecnologia. (desenho está logo abaixo)
Foi implementado Health Checks para acompanhar a saúde da API, ele é um middleware que fornece um endpoint que vai nos trazer a situação da aplicação, é uma forma de dizer que a aplicação está saudável ou não para uma solicitação web. Em conjunto implementei o serilog, pois tinha planos de realizar acompanhamento de loggin da aplicação.
Realizei uma mesclagem entre as versões 5 e 6 do .Net para configurar as classes program.cs e startup.cs, assim me dando a oportunidade de trabalhar com mais camadas de segurança nas conexões do banco de dados.
Para documentar a aplicação usei o framework Swagger, que oferece muitas ferramentas, ajuda na descrição, no consumo e na visualização dos serviços. Também pode ser usado com qualquer linguagem de programação.
Os commits e as Branchs foram feitos seguindo regras para manter uma boa organização e utilizando o Git Bash.
***
## 🖨️ Como clonar o projeto:
```
# Clone o repositório
git clone https://github.com/DiegoMaiaSantos/api-catalogo-produto.git
```
***
## 📷 Arquitetura do projeto:
***
## 📷 Relacionamento de entidades:
***
## 📷 Imagens do projeto:
***
## ☑️ Tecnologias e Ferramentas:
* [.Net 6.0](https://learn.microsoft.com/pt-br/dotnet/core/whats-new/dotnet-6)
* [Swagger](https://swagger.io/)
* [Entity Framework](https://learn.microsoft.com/pt-br/ef/)
* [SQL Server Managent](https://learn.microsoft.com/pt-br/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver16)
* [Visual Studio Community](https://visualstudio.microsoft.com/vs/community/)
* [Git Bash](https://git-scm.com/doc)
***
## 💻 Autor:
_Diego Maia Santos_***
## ⚠️ Licença:
Esse projeto está sob a [licença MIT](https://github.com/DiegoMaiaSantos/api-catalogo-produto/blob/main/LICENSE).***