/heroi-gen

Heroi Generator para Trabalho Infnet

Primary LanguageJava

Instituto InfNet - PGPJAV01C1-3N-P1 - Serviços em Nuvem - 2021/2

Prova Professor Leonardo Silva da Gloria

Grupo: Eduardo Gaspar, Paulo Gurjão, Pedro Queiroz, William dos Santos Pereira

Projeto de Bloco - Jogo RPG com Arquitetura em Microserviços

O objetivo é projetar e implementar os serviços REST de um jogo de RPG baseado em turnos.

Serviços a Serem Implementados pelo Grupo

Veja o swagger desses serviços aqui. Cole o conteúdo do swagger em editor.swagger.io para ver com a formatação.

Microserviço /heroi

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
}

Herois

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

Critérios de Avalição (pontuação aproximada atiginda até o momento: 6.5)

  • 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