O objetivo é projetar e implementar os serviços REST de um jogo de RPG baseado em turnos.
Veja o swagger
desses serviços aqui. Cole o conteúdo do swagger em editor.swagger.io para ver com a formatação.
Lista todos os heróis cadastrados ou retorna um herói específico e as suas características. É chamado via GET
e retorna um JSON com os dados. Exemplo:
{
"heroi": "BARBARO",
"pontosDeVida": 13,
"forca": 6,
"defesa": 1,
"agilidade": 3,
"qtdDadosDano": 2,
"tamanhoDadosDano": 6
}
Atualmente estão implementados os seguintes herois:
Herói | Pontos de Vida (PdV) | Força | Defesa | Agilidade | Fator de Dano (FdD) |
---|---|---|---|---|---|
Guerreiro | 12 | 4 | 3 | 3 | 2d4 |
Bárbaro | 13 | 6 | 1 | 3 | 2d6 |
Paladino | 15 | 2 | 5 | 1 | 2d4 |
-
1.
Implementar os serviços seguindo os padrões restfull: 2 pontos -
2.
Receber configurações do servidor de configuração: 0.5 ponto -
3.
Decodificar o Token JWT enviado para saber qual usuário está jogando: 0.5 ponto (Pedro)
Obs.: Se o seu MS não precisar saber qual o usuário está jogando o tópico 2 passa a valer 1 ponto -
4.
Se registrar no Eureka: 1 ponto (Paulo) -
5. Utilizar ClientSide Loadbalancer (Ribbon ou Feign): 1 ponto
-
6. Ser resiliente a falhas: 1 a 2 pontos
Obs.: 1 ponto = Implementar apenas um método visto, 2 pontos = implementar mais de 1 -
7. Criar uma conta no Papertrail e utilizar agregação de Logs: 0.5 ponto (William)
-
8.
Utilizar Zipkin: 0.5 ponto -
9.
Utilizar algum tipo de Cache: 0.5 ponto
Obs.: Se o serviço implementado não possuir a necessidade de cache o Zipkin passa a valer 1 ponto. O aluno deverá explicar por que o cache não se faz necessário -
10.
Colocar os códigos em repositório público e com README: 0.5 ponto -
11.
Utilizar swagger para documentar o serviço: 1 ponto