Skip to content

Victor-Vechi/DesafioRentAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio Rentcars

Esse projeto foi desenvolvido pensando no desafio proposto pela Rentcars, a seguir estão as informações e softwares necessários para executar o projeto.

Requisitos

Para executar o projeto em sua máquina é necessário ter as ferramentas a seguir instaladas em seu computador:

  • Node
  • Docker

Stacks

Foi utilizado no projeto as stacks a seguir:

Como executar o projeto

  1. Clonaremos o repositório para podermos executar localmente
# Clonando o repositório
$ git clone https://github.com/VictorVechi/DesafioRentAPI.git
$ cd DesafioRentAPI

Todos os comandos a seguir deverão ser executados na pasta do projeto

  1. Iremos instalar as dependências necessárias para o projeto executando o comando a seguir
# Instalando as dependências
$ npm install
  1. Antes de executarmos a api, é necessário criar a imagem e o container do docker. Abaixo segue os comandos necessários

Iremos começar criando uma pasta para ser o volume do container, para isso, execute o comando a seguir:

mkdir /tmp/mysql-data

Podemos executar os comandos do docker de duas formas, através do dockerfile e docker-compose ou através da linha de comando. Abaixo segue os comandos para executar através da linha de comando

docker run --name basic-mysql --rm -v /tmp/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ANSKk08aPEDbFjDO -e MYSQL_DATABASE=testing -p 3307:3306 -it mysql:8.0

Caso queira executar os comandos através do dockerfile e docker-compose, basta executar os comandos a seguir

# Para Windows, é necessário abrir o Docker Desktop antes de executar os comandos
# Para Linux, é só executar os comandos normalmente
# Criando o banco de dados com docker
$ docker build -t banco_desafio ./
$ docker-compose up
  1. Agora iremos iniciar a API

Para executar o comando a seguir será necessário abrir um novo terminal e entrar na pasta do projeto novamente

$ npm start

Rotas

As seguintes rotas estão disponíveis para a API:

  • GET http://localhost:3000/veiculos
  • GET http://localhost:3000/veiculos/id
  • POST http://localhost:3000/veiculos
  • PUT http://localhost:3000/veiculos/id
  • DELETE http://localhost:3000/veiculos/id

GET: Rota para obter registros do banco de dados

POST: Rota para cadastrar dados no banco

PUT: Rota para atualizar dados no banco

DELETE: Rota para deletar registros do banco

Para utilizá-las, apenas substitua o "id" pelo id desejado.

Exemplo:

http://localhost:3000/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7

Exemplos de uso

POST - Rota '/veiculos'

Entrada

TODOS OS CAMPOS DEVEM EXISTIR!
{
 "locadora": "Movida",
 "modelo": "Virtus",
 "marca": "Volkswagen",
 "ano": 2023,
 "motor": "1.0",
 "portas": 4,
 "cambio": "Automatico",
 "ar_condicionado": true
}

Saida

{
 "error":false,
 "message":"'Veículo criado com sucesso'"
}

GET - Rota '/veiculos'

  • A rota GET retorna todos os veículos cadastrados no banco de dados

Saida

{
 "id": "6998c2bf-b4cd-4c41-a05c-7fe99c510ec7",
 "locadora": "Movida",
 "modelo": "Virtus",
 "marca": "Volkswagen",
 "ano": 2023,
 "motor": "1.0",
 "portas": 4,
 "cambio": "Automatico",
 "ar_condicionado": true,
 "createdAt": "2023-10-31T13:36:47.000Z",
 "updatedAt": "2023-10-31T13:36:47.000Z"
}

GET - Rota '/veiculos/:id'

  • A rota GET com ID retorna apenas o veículo com o id informado

Ex rota:

/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7

Saida

{
 "id": "6998c2bf-b4cd-4c41-a05c-7fe99c510ec7",
 "locadora": "Movida",
 "modelo": "Virtus",
 "marca": "Volkswagen",
 "ano": 2023,
 "motor": "1.0",
 "portas": 4,
 "cambio": "Automatico",
 "ar_condicionado": true,
 "createdAt": "2023-10-31T13:36:47.000Z",
 "updatedAt": "2023-10-31T13:36:47.000Z"
}

PUT - Rota '/veiculos/:id'

  • A rota PUT com ID atualiza os dados do veículo com o id informado

Ex rota:

/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7

Entrada

TODOS OS CAMPOS DEVEM EXISTIR!
{
 "locadora": "Movida",
 "modelo": "Lancer",
 "marca": "Mitsubishi",
 "ano": 2023,
 "motor": "1.6",
 "portas": 4,
 "cambio": "Automatico",
 "ar_condicionado": false
}

Saida

{
 "error":false,
 "message":"Veículo atualizado com sucesso"
}

DELETE - Rota '/veiculos/:id'

  • A rota DELETE com ID deleta o veículo com o id informado

Ex rota:

/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7

Saida

{
 "error":false,
 "message":"Veículo deletado com sucesso"
}

Desenvolvido por: Victor Henrique Vechi da Silva

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published