Com a chegada dos jogos olímpicos, fomos designados para construir uma API REST em Ruby para o COB (Comitê Olímico Brasileiro), que será responsável por marcar e dizer os vencedores das seguintes modalidades:
- 100m rasos: Menor tempo vence
- Lançamento de Dardo: Maior distância vence
- bundle install
- bundle exec rake db:seed
- bundle exec rails s
curl -X POST http://localhost:3000/competitions
-d '{"competition":{"sport":"corrida", "athletes": [{"name":"Jan","code": "171"}]}}'
-H "Content-Type: application/json" -i
OBS: Os valors disponíveis para sport são 'corrida' e 'dardo' OBS-2: No corpo da resposta está o ID da competição necessário para os outros requests
curl -X PUT http://localhost:3000/competitions/ID
-d '{"competition":{"results":[{"athlete_code":"171","score":"273090"}]}}'
-H "Content-Type: application/json" -i
OBS: Necessário adicionar o ID da competição na url
curl -X GET http://localhost:3000/competitions/ID -i
OBS: Necessário adicionar o ID da competição na url
curl -X DELETE http://localhost:3000/competitions/ID -i
Através da API, deveremos ser capazes de:
- Criar uma competição
- Cadastrar resultados para uma competição (todos os campos são obrigatórios), ex:
{
"competicao": "100m classificatoria 1",
"atleta": "Joao das Neves",
"value": "10.234",
"unidade": "s"
}
ex:
{
"competicao": "Dardo semifinal",
"atleta": "Claudio",
"value": "70.43",
"unidade": "m"
}
- Finalizar uma competição.
- Retornar o ranking da competição, exibindo a posição final de cada atleta.
- A API não deve aceitar cadastros de resultados se a competição já estiver encerrada.
- A API pode retornar o ranking/resultado parcial, caso a disputa ainda não estiver encerrada.
- No caso da competição do lançamento de dardos, cada atleta terá 3 chances, e o resultado da competição deverá levar em conta o lançamento mais distante de cada atleta.
- O Design da API, bem como input e output dos dados, fica a seu critério, sendo inclusive um dos pontos de avaliação.
- Testes são obrigatórios.
- Necessária criação de um Readme para informar o passo a passo de como rodar a API.
- Não é necessário criar um banco de dados, podendo manter os dados na memória.
- É imperativo a utilização de Ruby para a criação da API Rest.