https://github.com/ddouglss/microsservice.net
Projeto de microsserviços desenvolvido com ASP.NET Core 8, implementando conceitos modernos de arquitetura distribuída, segurança, mensageria e orquestração. Esse sistema simula um e-commerce com serviços independentes para Produtos, Carrinho, Cupons e Autenticação (Identity Server).
https://github.com/ddouglss/microsservice.net
asp-net-core authentication authorization csharp docker duende-identityserver jwt-tokens microservices mongodb mysql net8 ocelot-api-gateway rabbitmq swagger swashbuckle
Last synced: 2 months ago
JSON representation
Projeto de microsserviços desenvolvido com ASP.NET Core 8, implementando conceitos modernos de arquitetura distribuída, segurança, mensageria e orquestração. Esse sistema simula um e-commerce com serviços independentes para Produtos, Carrinho, Cupons e Autenticação (Identity Server).
- Host: GitHub
- URL: https://github.com/ddouglss/microsservice.net
- Owner: ddouglss
- Created: 2025-04-29T06:03:42.000Z (about 1 year ago)
- Default Branch: order-api
- Last Pushed: 2025-11-03T03:32:28.000Z (8 months ago)
- Last Synced: 2025-11-03T05:23:34.181Z (8 months ago)
- Topics: asp-net-core, authentication, authorization, csharp, docker, duende-identityserver, jwt-tokens, microservices, mongodb, mysql, net8, ocelot-api-gateway, rabbitmq, swagger, swashbuckle
- Language: C#
- Homepage:
- Size: 35.9 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
GeekShopping - Microsserviços com .NET 8



Sobre
Projeto de microsserviços desenvolvido com ASP.NET Core 8, implementando conceitos modernos de arquitetura distribuída, segurança, mensageria e orquestração.
Esse sistema simula um e-commerce com serviços independentes para Produtos, Carrinho, Cupons e Autenticação (Identity Server).
Baseado no curso de microsserviços com .NET 8, OAuth2, OpenID, Identity Server, RabbitMQ, Ocelot, Swagger e muito mais.
## Tecnologias utilizadas
- .NET 8 / ASP.NET Core
- C#
- Duende Identity Server (OAuth2, OpenID Connect)
- RabbitMQ (mensageria)
- Ocelot API Gateway
- Swagger / Swashbuckle
- JWT (JSON Web Tokens)
- Mysql
- Docker
## Microsserviços
- **ProductAPI** — Serviço de gerenciamento de produtos
- **CartAPI** — Serviço de gerenciamento de carrinho de compras
- **CouponAPI** — Serviço de cupons de desconto
- **IdentityServer** — Serviço de autenticação e autorização baseado em OAuth2/OpenID Connect
- **API Gateway** — Usando Ocelot para roteamento e segurança
## Funcionalidades principais
- APIs REST para cada microsserviço, desacoplados e independentes
- Segurança via OAuth2 com tokens JWT e Identity Server
- Comunicação síncrona via HTTP e assíncrona via RabbitMQ
- Aplicação de cupons de desconto no carrinho
- Documentação automática com Swagger para todas APIs
- Suporte para deploy local e em containers Docker
## Como rodar localmente
1. Clone o repositório:
```bash
git clone https://github.com/seu-usuario/seu-repositorio.git
cd seu-repositorio
```
- Configure as variáveis de ambiente e os arquivos appsettings.json em cada microsserviço.
## Inicie o RabbitMQ (local ou via Docker):
```bash
docker run -d --hostname rabbitmq --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
```
## Execute os microsserviços na ordem recomendada:
- IdentityServer
- ProductAPI
- CouponAPI
- CartAPI
- API Gateway (Ocelot)
Acesse a documentação Swagger em cada serviço via navegador (ex: https://localhost:4440/swagger)
## Rodando com Docker Compose
```bash
docker-compose up --build
```
## Contribuição
Contribuições são bem-vindas! Faça um fork do projeto, crie sua branch com feature/bugfix e envie um pull request.
## Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
## ✍️ Autor
**Douglas Souza Silva**
Estudante e desenvolvedor Java em constante aprendizado.
[LinkedIn](https://www.linkedin.com/ddouglss) • [GitHub](https://github.com/ddouglss)
---
> _Este repositório acompanha a evolução prática do conteúdo abordado no curso, com foco em aprendizado sólido e aplicação no mundo real._