Desafio
Vamos implementar uma aplicao para consultar o valor mdio de veculos (carros, motos ou caminhes) de acordo com a tabela FIPE, que pode ser acessada atravs desse site.
- A consulta aos valores dos veculos pelo site tem o seguinte fluxo:
- Primeiramente necessrio escolher o tipo do veculo: carro, moto ou caminho.
- Depois disso, necessrio preencher a MARCA, MODELO e ANO para consulta.
Objetivos do projeto
- O objetivo do projeto ter um fluxo similar ao que feito no site, porm com algumas melhorias.
- Criaremos um projeto Spring com linha de comando, utilizando a classe Scanner para fazer interaes com o usurio via terminal.
- Solicitaremos que o usurio digite o tipo de veculo desejado (carro, caminho ou moto).
- Feito isso, listaremos todas as marcas daquele tipo de veculo, solicitando que o usurio escolha uma marca pelo cdigo.
- Aps essa escolha, listaremos todos os modelos de veculos daquela marca.
- Solicitaremos que o usurio digite um trecho do modelo que ele quer visualizar, por exemplo PALIO.
- Listaremos apenas os modelos que tiverem a palavra PALIO no nome.
- Usurio escolher um modelo especfico pelo cdigo e, diferente do site, j listaremos as avaliaes para TODOS os anos disponveis daquele modelo, retornando uma lista de forma similar imagem abaixo:
Observaes:
-
Para realizao do desafio faremos o consumo de uma API, documentada nesse link.
-
De acordo com o escolhido (carro, moto, ou caminho) vamos fazer uma chamada a um dos endpoints abaixo para buscar as marcas:
https://parallelum.com.br/fipe/api/v1/carros/marcas
https://parallelum.com.br/fipe/api/v1/motos/marcas
https://parallelum.com.br/fipe/api/v1/caminhoes/marcas
- O retorno dessa requisio ser uma lista com cdigo e marca desejada. Caso o usurio queira por exemplo fazer uma consulta a modelos de carros da Fiat, que possui o cdigo 21, ter que fazer uma nova requisio para o endpoint:
https://parallelum.com.br/fipe/api/v1/carros/marcas/21/modelos
- Feito isso, ir escolher um cdigo de modelo, por exemplo esse Palio Weekend Stile 1.6 mpi 16V 4p, representado pelo cdigo 560. Ento dever fazer uma terceira requisio para o endpoint:
https://parallelum.com.br/fipe/api/v1/carros/marcas/21/modelos/560/anos
- Para saber a avaliao para cada ano disponvel, teremos que fazer requisies pelo cdigo por ano, onde obteremos um retorno similar ao que mostrado abaixo:
https://parallelum.com.br/fipe/api/v1/carros/marcas/21/modelos/560/anos/2003-1
- Para podermos exibir em nossa aplicao as avaliaes de todos os anos para esse modelo, ser necessrio trabalhar com as colees e estruturas de repetio para poder exibir j todos as avaliaes de todos os anos para o nosso usurio.
- Utilize a biblioteca Jackson para a desserializao dos dados.
- Modele as classes de acordo com o necessrio para representar as marcas, modelos e dados dos veculos.
- Relembre os conceitos vistos no curso para filtrar os modelos por um trecho do nome.
Bom desafio!