O objetivo do projeto é demonstrar como construir uma solução baseada em microsserviços utilizando as melhores práticas de arquitetura de serviços distribuídos.
Landy conecta anfitriões a viajantes pelo mundo todo. O projeto é baseado em microsserviços e possui as seguintes funções:
- Gestão de Usuários
- Gestão de Ofertas de Hospedagem
- Criação de Reservas
- Envio de Notificação
- NET 5.0
- SQL Server Express
- Entity Framework Core
- ASP.NET Core Web API
- ASP.NET Core gRPC Service
- AutoMapper
- FluentValidation
- MediatR
- Redis
- Kafka
- Kafkadrop
- ElasticSearch
- Kibana
- Jaeger
- Ocelot
- Docker
docker-compose up
Gateway
Serviço | Url |
---|---|
Gateway.WebApi | http://localhost:5000 |
Microsserviços
Serviço | Url |
---|---|
Gestão de Usuários (Identiy.Api) | http://localhost:4000 |
Booking (Booking.Api) | http://localhost:4001 |
Ofertas (Offer.Api) | http://localhost:4002 |
Notificação (Notification.Grpc) | http://localhost:14000 |
Ferramentas:
Serviço | Url |
---|---|
Kafkadrop | http://localhost:19000 |
Kibana | http://localhost:5601 |
Jaeger UI | http://localhost:16686 |
dotnet tool install --global dotnet-ef
cd src/Services.Identity/Landy.Services.Identity.Core
dotnet ef database update --startup-project ../Landy.Services.Identity.Api --context IdentityDbContext
Verb | Route |
---|---|
POST | /offers |
GET | /offers |
GET | /offers/:id |
Verb | Route |
---|---|
POST | /book |
GET | /book/:id |
Verb | Route |
---|---|
POST | /users |
GET | /users/:id |
PUT | /users/:id |
PUT | /users/:id/password |
DELETE | /users/:id |
PUT | /users/:id/passwordresetemail |
POST | /users/:id/emailaddressconfirmation |
✅ CQRS
✅ Mediator
✅ Event Sourcing
✅ Search Indexer
✅ Persistence
✅ Mappers
✅ Validators
✅ Web API
✅ gRPC
✅ OpenTracing
✅ API Gateway
- Pagar.me
- SendGrid