Aplicação back-end para surprir as necessidades de dados das demais plataformas desenvolvidas que são citadas mais abaixo. Este sistema é capaz de listar os jogos disponíveis, seus respectivos anúncios e cadastrar novos anúncios de um jogo.
Durante o evento do NLW da Rocketseat, essa foi a aplicação a ser desenvolvida durante o evento.
Além do atual projeto, foi desenvolvido uma aplicação mobile e para web, na qual requisitam os dados para essa API.
- Prisma
- Express
- NodeJS
- TypeScript
Para instalar e usar pelo repositório, clone o repositório e instale as dependências usando o seguinte comando no diretório raiz.
npm install
ou se preferir:
yarn install
E por fim, para executar o projeto basta inserir o seguinte comando:
npm run dev
ou se preferir:
yarn run dev
Importante ressaltar que localmente a url para acesso é localhost:3333
, caso o repositório seja hospedado em um servidor é necessário revisar essas informações na hora de usufruir da API.
get('/games/')
Saída:
[
{
"id": "e5bdc648-c1bf-4cc1-8721-a548d58775b5",
"title": "League of Legends",
"bannerUrl": "https://static-cdn.jtvnw.net/ttv-boxart/21779-285x380.jpg",
"_count": {
"ads": 0
}
},
{
"id": "6cf741e6-9893-44a8-931f-414b083de6aa",
"title": "Minecraft",
"bannerUrl": "https://static-cdn.jtvnw.net/ttv-boxart/27471_IGDB-285x380.jpg",
"_count": {
"ads": 0
}
},
{...}
]
get('/games/id/ads')
Saída:
[
{
"id": "c8e82ced-6878-4cad-8ea0-466320de00ff",
"name": "ImFelippe365",
"weekDays": [
"0", "6"
],
"useVoiceChannel": true,
"yearsPlaying": 2,
"hoursStart": "13:00",
"hoursEnd": "18:00"
},
{...}
]
get('/ads/id/discord')
Saída:
{
"discord": "ImFelippe365#2814"
}
post('/games/gameId/ads')
gameId
- ID do jogo que o anúncio será criado
name
- Nome do jogador (string)
yearsPlaying
- Por quantos anos já jogou (number)
discord
- Nome de usuário do discord (string)
weekDays
- Dias da semana em que joga (number[])
hoursStart
- Horário que começa a jogar (string)
hoursEnd
- Horário que para de jogar (string)
useVoiceChannel
- Se utiliza canal de voz para comunição (boolean)
A requisição deve ter o corpo parecido com este:
{
"name": "Felippe Rian",
"yearsPlaying": 2,
"discord": "ImFelippe365#2814",
"weekDays": [0, 6],
"hoursStart": "18:00",
"hoursEnd": "23:00",
"useVoiceChannel": true
}