API for Travels Management - UFLA Comp Jr/20 anniversary event
MIT License
Uma API em Java e Spring Framework para gerenciamento de viagens.
Nossa API deve criar, atualizar, deletar e listar viagens. Além disso, deve calcular estatísticas sobre as viagens criadas. A API terá os seguintes endpoints:
POST/api-travels/travels
: cria uma viagem.
Body:
Where:
id
: número único da viagem;
orderNumber
: número de identificação da viagem no sistema.
amount
: valor da transação; deve ser uma String de tamanho arbitrário que pode ser parseada como um BigDecimal;
startDate
: data de início da viagem no formato ISO 8601 YYYY-MM-DDThh:mm:ss.sssZ no timezone local.
endDate
: data de fim da viagem no formato ISO 8601 YYYY-MM-DDThh:mm:ss.sssZ no timezone local. Pode ser nulo se a viagem é só de ida.
type
: se a viagem é somente de ida (ONE-WAY), ida e volta (RETURN) ou múltiplos destinos (MULTI-CITY).
Deve retornar com body vazio com um dos códigos a seguir:
PUT/api-travels/travels/{id}
: atualiza uma viagem.
Body:
Deve ser enviado o objeto que será modificado. O retorno deve ser o próprio objeto modificado.
A resposta deve conter os códigos a seguir:
GET/api-travels/travels
: retorna todas as viagens criadas.
Deve retornar uma lista de viagens.
A resposta deve conter os códigos a seguir:
DELETE/api-travels/travels
: remove todas as viagens.
Deve aceitar uma requisição com body vazio e retornar 204.
GET/api-travels/statistics
: retorna estatísticas básicas sobre as viagens criadas.
Em que:
sum
: um BigDecimal especificando a soma total das viagens criadas.
avg
: um BigDecimal especificando a média dos valores das viagens criadas.
max
: um BigDecimal especificando o maior valor dentre as viagens criadas.
min
: um BigDecimal especificando o menor valor dentre as viagens criadas.
count
: um long especificando o número total de viagens.
Todos os campos que são BigDecimal devem ter apenas duas casas decimais, por exemplo: 15.385 deve ser retornado como 15.39.
mvn test
mvn integration-test
Para rodar a API via .jar:
java -jar travels-api-2.0.1.jar --spring.profiles.active=dev
ou
mvn spring-boot:run -Dspring.profiles.active=dev
Por default, a API está disponível no endereço http://localhost:8080/