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.
Para executar o projeto em sua máquina é necessário ter as ferramentas a seguir instaladas em seu computador:
- Node
- Docker
Foi utilizado no projeto as stacks a seguir:
- [Node][https://nodejs.org/en/about]
- [Javascript][https://developer.mozilla.org/pt-BR/docs/Web/JavaScript]
- [Insomnia][https://insomnia.rest/]
- [MySql][https://www.mysql.com/]
- [Docker][https://www.docker.com/]
- [JS | Express][https://expressjs.com/pt-br/starter/installing.html]
- [JS | Sequelize][https://sequelize.org/]
- Clonaremos o repositório para podermos executar localmente
# Clonando o repositório
$ git clone https://github.com/VictorVechi/DesafioRentAPI.git
$ cd DesafioRentAPITodos os comandos a seguir deverão ser executados na pasta do projeto
- Iremos instalar as dependências necessárias para o projeto executando o comando a seguir
# Instalando as dependências
$ npm install- 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-dataPodemos 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.0Caso 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- 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 startAs 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-7fe99c510ec7TODOS OS CAMPOS DEVEM EXISTIR!
{
"locadora": "Movida",
"modelo": "Virtus",
"marca": "Volkswagen",
"ano": 2023,
"motor": "1.0",
"portas": 4,
"cambio": "Automatico",
"ar_condicionado": true
}{
"error":false,
"message":"'Veículo criado com sucesso'"
}- A rota GET retorna todos os veículos cadastrados no banco de dados
{
"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"
}- A rota GET com ID retorna apenas o veículo com o id informado
/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7
{
"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"
}- A rota PUT com ID atualiza os dados do veículo com o id informado
/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7
TODOS OS CAMPOS DEVEM EXISTIR!
{
"locadora": "Movida",
"modelo": "Lancer",
"marca": "Mitsubishi",
"ano": 2023,
"motor": "1.6",
"portas": 4,
"cambio": "Automatico",
"ar_condicionado": false
}{
"error":false,
"message":"Veículo atualizado com sucesso"
}- A rota DELETE com ID deleta o veículo com o id informado
/veiculos/6998c2bf-b4cd-4c41-a05c-7fe99c510ec7
{
"error":false,
"message":"Veículo deletado com sucesso"
}Desenvolvido por: Victor Henrique Vechi da Silva