Esse é um projeto para futuras consultas de técnicas empregadas com ASP.NET Core 2.2 aplicando API-Guidelines da Microsoft.
Técnicas
- RESTfull
- Autenticação JWT
- Swagger
- Versionamento de API
- Docker
- HealthCheck - Utilizando a lib Xabaril/AspNetCore.Diagnostics.HealthChecks
- Acessar a url /healthz no browser
- FluentValidation
- GraphQL
- Acessar a url /ui/playground no browser
- EF
- MySQL
- Migrations
- Resiliência requisições Http(utilizando Polly)
- Retry
- Timeout
- CircuitBreaker
- Caching
- Redis - Baseado nessa implementação
- MessageBrokers
- RabbitMQ
- - Criação customizada de exchanges/queue por Atributos
- RabbitMQ
- SonarQube
Para utilizar o GraphQL é necessário ter um token de autenticação Bearer.
Acessando a url https://localhost:5001/ui/playground
terá disponível uma UI para realizar alguns testes ;)
Para adicionar novos personagens basta realizar as operações do contorller Dragon Ball.
Tipos disponívels:
type Character {
id: int,
name: string!,
bithDate: string!,
relatives: [Relative!],
kind: Kind!
}
type Relative {
id: int!,
name: string!,
bithDate: string!,
relatives: [Relative!],
relativeKind: RelativeKind!
}
enum Kind {
HUMAN = 1,
SAYAJIN = 2
}
enum RelativeKind {
Brother = 1,
Sister = 2,
Son = 3,
Daugther = 4,
Spouse = 5,
Father = 6 ,
Mother = 7
}
Queries disponíveis
characters
character(id: int)
Mutations disponíveis
createCharacter(character: Character)
O arquivo Dockerfile
já contém as instruções necessárias para serem buildadas, vamos executar o comando abaixo para compilar uma imagem.
docker build -t aspnet-core-webapi .
O arquivo docker-compose.yml
já contém as imagens necessárias para rodar a aplicação, basta executar o comando abaixo:
docker-compose build
docker-compose up
A porta do container é 80, porém estará pública na porta 8181.
E acessar a página http://localhost:8181/index.html