Skip to content

API na qual é possível cadastrar, listar, atualizar e deletar carros e motos, desenvolvida com Docker, Express, TypeScript e MongoDB.

Notifications You must be signed in to change notification settings

graciele-sampaio/vehicle-shop

Repository files navigation

image-vehicle-shop

Vehicle Shop

Utilizei alguns princípios de Programação Orientada a Objetos (POO) para construir uma API com CRUD(create, read, update e delete). O objetivo deste projeto foi gerenciar uma concessionária de veículos. Usei a Arquitetura de Software MSC(Model, Service, Controller), bem como testes de unidade para a camada service.

Tecnologias utilizadas

chai   Docker   Express   MongoDB   Mongoose   sinon   TypeScript  

Rodando com Docker

Clone o repositório

git@github.com:graciele-sampaio/vehicle-shop.git

Entre na pasta criada:

cd vehicle-shop

Instale as dependências

npm install

Rodando os serviços do node e mongodb no Docker.

docker-compose up -d --build 

Para executar o terminal do node no container:

docker exec -it car_shop bash

Para executar a aplicação com o tsnode, uilize o comando dentro do terminal do containernode:

npm run dev

Para executar o terminal do banco de dados(mongodb) no container:

docker exec -it car_shop_db bash

Rodando localmente

  • Para rodar dessa forma, obrigatoriamente você deve ter instalado em seu computador a versão 16 do node.

Clone o repositório

git@github.com:graciele-sampaio/vehicle-shop.git

Entre na pasta criada:

cd vehicle-shop

Instale as dependências

npm install

Documentação da API

Cadastra um carro

POST /cars
  • Formato do corpo da requisição:
{
  "model": "HB20",
  "year": 2015,
  "color": "Black",
  "status": true,
  "buyValue": 47.990,
  "doorsQty": 4,
  "seatsQty": 5
}

Cadastra uma moto

POST /motorcycles
  • Formato do corpo da requisição:
{
  "model": "Yamaha lander 250",
  "year": 2015,
  "color": "red",
  "status": true,
  "buyValue": 23.990,
  "category": "Street",
  "engineCapacity": 250
}

Retorna um array com todos os carros

GET /cars

Retorna um array com todas as motos

GET /motorcycles

Retorna um carro a partir do id passado como parâmetro

GET /cars/:id

Retorna uma moto a partir do id passado como parâmetro

GET /motorcycles/:id
Parâmetro Tipo Descrição
id number Obrigatório. O ID da moto ou carro que você quer

Atualiza dados do carro a partir do id passado como parâmetro

PUT /cars/:id

Atualiza dados da moto a partir do id passado como parâmetro

PUT /motorcycles/:id
Parâmetro Tipo Descrição
id number Obrigatório. O ID da moto ou carro que você quer

Deleta o carro a partir do id passado como parâmetro

DELETE /cars/:id

Deleta a moto a partir do id passado como parâmetro

DELETE /motorcycles/:id
Parâmetro Tipo Descrição
id number Obrigatório. O ID da moto ou carro que você quer

Tabela resumo

Método Rota Parâmetro Tipo Descrição
POST /cars formato json disponível no tópico: "Documentação da API" consultar exemplo do corpo da requisição Cadastra um carro por meio das informações passadas no corpo da requisição
POST /motorcycles formato json disponível no tópico: "Documentação da API" consultar exemplo do corpo de requisição Cadastra uma moto por meio das informações passadas no corpo da requisição
GET /cars - - - - - - Retorna um array com todos os carros cadastrados
GET /motorcycles - - - - - - Retorna um array com todas as motos cadastradas
GET /cars/:id id string Busca carro a partir do id passado como parâmetro
GET /motorcycles/:id id string Busca moto a partir do id passado como parâmetro
PUT /cars/:id id string Atualiza os dados de um carro a partir do id passado como parâmetro
PUT /motorcycles/:id id string Atualiza os dados de uma moto a partir do id passado como parâmetro
DELETE /cars/:id id string Deleta um carro a partir do id passado como parâmetro
DELETE /motorcycles/:id id string Deleta uma moto a partir do id passado como parâmetro

About

API na qual é possível cadastrar, listar, atualizar e deletar carros e motos, desenvolvida com Docker, Express, TypeScript e MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published