Shop Car
Shop Car é um projeto do módulo de back-end do curso de desenvolvimento web da Trybe. Objetivo do projeto era desenvolver uma aplicação usando os princípios da Programação Orientada a Objetos (POO) para a construção de uma API com CRUD para gerenciar uma concessionária de veículos, utilizando o banco de dados MongoDB.
Habilidades utilizadas
- Typscript
- NodeJs
- Express
- Docker
- MongoDB
- Programação Orientada a Objetos (POO)
- Testes Unitários
Instrução de instalação
- Clone o repositório
git clone git@github.com:GustavoGracioM/car-shop.git
- Executando Docker
- Inicialize container docker:
docker-compose up -d
- Entre no container:
docker exec -it car_shop bash
- Instale as dependências
npm install
- Inicialize a aplicação
npm start
Endpoints:
/cars
POST - O endpoint adiciona um carro ao banco;
- O corpo da requisição deve seguir o formato abaixo:
{ "model": "Honda Civic Hach", "year": 1995, "color": "Preto", "buyValue": 50000, "doorsQty": 2, "seatsQty": 2 }
- Se algum dado estiver incorreto, o status 400 e uma mensagem de erro serão retornado;
/cars
GET -
O endpoint lista todos os carros registrados;
-
Caso não tenha nenhum carro cadastrado no banco a requisição retorna um array vazio;
/cars/:id
GET -
O endpoint lista um único carro através do seu id;
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido;
/cars/:id
PUT -
O endpoint atualiza um registro de um carro através do seu id;
-
O corpo da requisição deve seguir o formato abaixo:
{ "model": "Honda Civic Hach", "year": 1995, "color": "Preto", "buyValue": 50000, "doorsQty": 2, "seatsQty": 2 }
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido; -
É disparado o erro
400
caso obody
esteja vazio;
/cars/:id
DELETE -
O endpoint exclui um registro de um carro através do seu id;
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido;
/motorcycles
POST - O endpoint adiciona um motocicleta ao banco;
- O corpo da requisição deve seguir o formato abaixo:
{ "model": "Harley-Davidson V Rod", "year": 2006, "color": "Preto", "buyValue": 70000, "category": "Custom", "engineCapacity": 2 }
- Se algum dado estiver incorreto, o status 400 e uma mensagem de erro serão retornado;
/motorcycles
GET -
O endpoint lista todas as motocicletas registrados;
-
Caso não tenha nenhum motocicleta cadastrado no banco a requisição retorna um array vazio;
/motorcycles/:id
GET -
O endpoint lista uma única motocicleta através do seu id;
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido;
/motorcycles/:id
PUT -
O endpoint atualiza um registro de uma motocicleta através do seu id;
-
O corpo da requisição deve seguir o formato abaixo:
{ "model": "Harley-Davidson V Rod", "year": 2006, "color": "Preto", "buyValue": 70000, "category": "Custom", "engineCapacity": 2 }
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido; -
É disparado o erro
400
caso obody
esteja vazio;
/motorcycles/:id
DELETE -
O endpoint exclui um registro de uma motocicleta através do seu id;
-
É disparado o erro
400
Id must have 24 hexadecimal characters
caso o id possua menos que 24 caracteres'; -
É disparado o erro
404
Object not found
caso o id possua 24 caracteres, mas seja inválido;
Teste
- Digite no terminal o comando
npm run test