Descrição
Adicionar endpoint para cadastrar um novo jogo.
Requisitos:
POST /games
- Validação do payload
- Persistência em storage (arquivo
data/games_seed.json ou DB futuro)
- Retornar
201 Created com o recurso criado ou 400/422 em caso de erro
Payload esperado:
{
"id": "string-ulid",
"name": "string",
"releaseDate": "YYYY-MM-DD",
"platform": "string",
"gender": "string",
"subGender": "string",
"rating": 0
}
Critérios de Aceite
Tasks
Exemplo de Requisição
POST /games
Content-Type: application/json
{
"name": "The Legend of Go",
"releaseDate": "2025-01-01",
"platform": "PC",
"gender": "Programing",
"subGender": "Simple",
"rating": 0
}
Resposta:
{
"id": "01K9JYHR1HA9RNE7QVBXMMW4TH",
"name": "The Legend of Go",
"releaseDate": "2025-01-01",
"platform": "PC",
"gender": "Programing",
"subGender": "Simple",
"rating": 0
}
Descrição
Adicionar endpoint para cadastrar um novo jogo.
Requisitos:
POST /gamesdata/games_seed.jsonou DB futuro)201 Createdcom o recurso criado ou400/422em caso de erroPayload esperado:
{ "id": "string-ulid", "name": "string", "releaseDate": "YYYY-MM-DD", "platform": "string", "gender": "string", "subGender": "string", "rating": 0 }Critérios de Aceite
POST /gamesimplementadotitle,platformobrigatórios)201e JSON do jogo criadodata/games_seed.json400em caso de payload inválido/gamesTasks
GamestructCreateGamee registrarapp.Post("/games", CreateGame)title,platform)data/games_seed.jsoncom lock (mutex)openapi.yamlinternal/games/games_create_test.goExemplo de Requisição
Resposta:
{ "id": "01K9JYHR1HA9RNE7QVBXMMW4TH", "name": "The Legend of Go", "releaseDate": "2025-01-01", "platform": "PC", "gender": "Programing", "subGender": "Simple", "rating": 0 }