Code Monkey home page Code Monkey logo

fipe-api's Introduction

FIPE API

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.

Linguagem

NodeJs

Tabela FIPE atualizada : 03/2023

Variáveis de ambiente

# BASIC CONFIGS
DEBUG=false
SERVER_PORT=3000
CACHE_ENABLED=true

# FIPE CONFIGS ( TABLE = 295 // Março/2023 )
FIPE_TABLE=295

# DATABASE CONFIGS
DB_URI=mongodb+srv://[USER]:~[PASS]@[URL]/?retryWrites=true&w=majority
DB_NAME=[DATABASE-NAME]

Database Cache

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.

Rodando a aplicação

Segue abaixo passo a passo para rodar a FIPE API em sua máquina local.

Dependências globais

yarn install 

Rodar o projeto

Para rodar o projeto localmente, basta rodar o comando abaixo:

yarn start

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.

yarn dev

Testes utilizando Jest. Para rodar tests utilize comando abaixo :

yarn test

Acesse através do endereço abaixo:

http://localhost:3000/v1/

Observações:

Para derrubar todos os serviços, basta utilizar as teclas CTRL+C, que é o padrão dos terminais para matar processos.

Endpoints

São endpoints simples :

Usage : /type GET types

Result

{
	"success": true,
	"data": [
		{
			"Value": 1,
			"Label": "carros"
		},
		{
			"Value": 2,
			"Label": "motos"
		},
		{
			"Value": 3,
			"Label": "caminhões"
		}
	]
}

GET brands

Usage

/brands/:type ( sendo type o Value to tipo desejado )

Result

{
	"success": true,
	"updatedAt": "2023-03-01T00:00:00.000Z",
	"type": "1",
	"type_label": "carros",
	"data": [
		{
			"Label": "Acura",
			"Value": "1"
		}
  ]
}

GET models

Usage

/models/:type/:brand ( sendo type o Value to tipo desejado e brand o Value da marca desejada )

Result

{
	"success": true,
	"updatedAt": "2023-03-01T00:00:00.000Z",
	"type": "1",
	"type_label": "carros",
	"brand": "1",
	"data": [
		{
			"Label": "Integra GS 1.8",
			"Value": 1
		}
	]
}

GET years

Usage

/years/:type/:brand/:model ( sendo type o Value to tipo desejado, brand o Value da marca desejada e model o Value do modelo desejado )

Result

{
	"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"
		}
	]
}

GET details

Usage

/details/:type/:brand/:model/:year ( sendo type o Value to tipo desejado, brand o Value da marca desejada, model o Value do modelo desejado e year o ano do modelo desejado em formato YYYY )

Result

{
	"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"
	}
}

Motivação

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 ;)

Linkedin

Bora nos conectar no Linkedin ! 😉🔥

fipe-api's People

Contributors

olavomello avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

fipe-api's Issues

Deploy Vercel

Boas! Teria como fazermos o deploy na vercel? So pra consumir a API, e ja ficar por la cacheada. Sao dados que nao tem alteracao, seria muito valido se ficassem por la.

Se tiver como atualizar no readme o deploy pra la, fico agradecido. E parabens pela iniciativa

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.