API para leitura de tipos, marcas e modelos de veículos da Tabela FIPE brasileira.
⚠️ Mantive os mesmos padrões de nomenclatura de propriedades dos dados recebidos pela FIPE para facilitar a transposição entre sistemas.
NodeJs
Tabela FIPE atualizada : 03/2023
# BASIC CONFIGSDEBUG=falseSERVER_PORT=3000CACHE_ENABLED=true# FIPE CONFIGS ( TABLE = 295 // Março/2023 )FIPE_TABLE=295# DATABASE CONFIGSDB_URI=mongodb+srv://[USER]:~[PASS]@[URL]/?retryWrites=true&w=majorityDB_NAME=[DATABASE-NAME]
Se habilitado o sistema armazena dados de consulta no banco de dados ( MongoDB ) e realiza as próximas consultas utilizando dados do DB, evitando assim paralizações devido a alto volume de consultas á API da FIPE e agilizando o processamento dos dados em momentos onde a API da FIPE está sobrecarregada e com alto delay.
O cache habilitado demonstrou redução de tempo de reposta de 50% a +60% dependendo da latência da API da FIPE.
Segue abaixo passo a passo para rodar a FIPE API em sua máquina local.
Para rodar o projeto localmente, basta rodar o comando abaixo:
Para rodar em modo DEV utilize o comando abaixo :Desta forma o nodemon será ativado e você poderá trabalhar em atualizações enquanto o server está rodando, em modo live-reload.
Testes utilizandoJest
. Para rodartests
utilize comando abaixo :
Acesse através do endereço abaixo:
http://localhost:3000/v1/
Observações:
Para derrubar todos os serviços, basta utilizar as teclasCTRL+C
, que é o padrão dos terminais para matar processos.
São endpoints simples :
Usage : /typeGETtypes
{"success":true,"data": [{"Value":1,"Label":"carros"},{"Value":2,"Label":"motos"},{"Value":3,"Label":"caminhões"}]}
GETbrands
/brands/:type ( sendotype
o Value to tipo desejado )
{"success":true,"updatedAt":"2023-03-01T00:00:00.000Z","type":"1","type_label":"carros","data": [{"Label":"Acura","Value":"1"} ]}
GETmodels
/models/:type/:brand ( sendotype
o Value to tipo desejado ebrand
o Value da marca desejada )
{"success":true,"updatedAt":"2023-03-01T00:00:00.000Z","type":"1","type_label":"carros","brand":"1","data": [{"Label":"Integra GS 1.8","Value":1}]}
GETyears
/years/:type/:brand/:model ( sendotype
o Value to tipo desejado,brand
o Value da marca desejada emodel
o Value do modelo desejado )
{"success":true,"updatedAt":"2023-03-01T00:00:00.000Z","type":"1","type_label":"carros","brand":"1","model":"1","data": [{"Label":"1992 Gasolina","Value":"1992-1"}]}
GETdetails
/details/:type/:brand/:model/:year ( sendotype
o Value to tipo desejado,brand
o Value da marca desejada,model
o Value do modelo desejado eyear
o ano do modelo desejado em formato YYYY )
{"success":true,"updatedAt":"2023-03-01T00:00:00.000Z","type":"1","type_label":"carros","brand":"1","model":"1","year":"1992","data": {"Valor":"R$ 12.062,00","Marca":"Acura","Modelo":"Integra GS 1.8","AnoModelo":1992,"Combustivel":"Gasolina","CodigoFipe":"038003-2","MesReferencia":"março de 2023","Autenticacao":"gwrlykvqsc","TipoVeiculo":1,"SiglaCombustivel":"G","DataConsulta":"sexta-feira, 24 de março de 2023 18:56"}}
Criei esta API simples pois em meus projetos, assim como em projetos de amigos, sempre há a necessidade de carregar dados atualizados de veículos e muitas vezes os sistemas terceiros acabam ficando fora do ar e derrubando funções importantes de aplicações que os utilizam.
Espero que seja útil ;)
Bora nos conectar no Linkedin ! 😉🔥