TI-UNICESUMAR / 2024-topicos-em-programacao-ESOFT7S

11 stars 5 forks source link

Consumo e criação de API's com Express #9

Open ThiagoBussola opened 8 months ago

ThiagoBussola commented 8 months ago

Magic the Gathering é um jogo de cartas competitivo e colecionável publicado pela empresa Wizards of the Coast. MTG tem diversos formatos de jogo, commander, pauper, standard, entre outros. Cada modo de jogo tem suas próprias regras, que irão ditar mecanicas, quantidade de cartas, cards permitidos entre outras caracteristicas. Um dos modos mais jogados no mundo todo é o Commander, também conhecido como Elder Dragon Highlander (EDH). As características desse modo de jogo, é que seu baralho será composto de 99 cartas + 1 card de comandante. Porém não pode haver repetição de cartas, somente terremos básicos podem ser repetidos (basic lands) ou cartas que tenham explicitamente em seu texto uma indicação de que podem ter mais de uma cópia, sendo essa uma exceção rara. Um comandante é uma criatura Lendária, e isso está indicado no card desta criatura.

image

Outra regra importante a ser seguinda é que em seu baralho só podem existir cards que tenham a cor de seu comandante, por exemplo: Se o sua comandante é a carta Gisa, ressuscitadora gloriosa, somente cartas de cor preta podem estar em seu baralho. Se sua comandante for Dina Imbuidora de Almas, seu baralho poderá ter cartas pretas e verdes.

1 - Tendo essas informações como base, você deve ler a documentação fornecida, e buscar por 99 cards nessa base de dados para formar o seu baralho. Procure primeiro por um comandante, pois ele irá ditar quais cores suas outras 99 cartas poderão ter. Escolhendo o comandante, utilize as informações na doc para buscar outras 99 cartas na base de dados correspondente as cores permitidas, lembrando que você pode repetir somente os terrenos básicos.

2- Após consumir a API e buscar esses dados, salve eles em um arquivo.json, ou em seu banco de dados.

3 - Crie uma rota em sua API para trazer os 100 cards de seu baralho

4 - Crie os testes automatizados para validar as regras de negócio e o funcionamento de seus endpoints, você pode utilizar mocks para isso.

Link para a documentação: https://docs.magicthegathering.io/#documentationrate_limits

É permitido que você utilize outras APIs de cartas de magic como o Scryfall para realizar sua atividade, contanto que indique isso. Você deve realizar a atividade utilizando express e typescript.

akiojapa commented 8 months ago

Solução da API do carteado:

https://github.com/akiojapa/DeckAPI.git

jvbt3 commented 8 months ago

https://github.com/jvbt3/DeckCartas.git

devhetor commented 6 months ago

https://github.com/devhetor/DeckCards.git