O Framework usado para as requisições HTTP foi o Express, outras bibliotecas foram utilizadas para conectar a API ao banco de dados Mysql (Mysql2 e Sequelizer).
A API segue os critérios de boas praticas.
obs:
- Esta API possibilita a consulta do motorista pelo CPF, pelo nome, parte do nome (em caso não tenha o nome completo);
- Permite consultar o automovel pela Marca e Cor podendo também consultar apenas pela cor ou apenas pela marca.
Copie o .env.example para .env (.env-example da raiz já esta com o exemplo de credenciais, pode-se manter as mesmas ou alterar conforme ambiente)
Para instalar as dependencias execute o comando a seguir:
npm install
Para facilitar os testes da API, preparei arquivos de comandos MySQL com os dados usada eu meus teste. Estes arquivos encontram se na pasta src/config:
- Arquivo Tabela - este arquivo cria a Base de Dados como nome api_controle_frota;
- Arquivo inserçao - insere dados nas tabelas motoristas, automoveis e automoveis_utiilizados.
Para executar a aplicacao e fazer as consultas atraves dos endpoints uso o comando:
npm run dev
localhost:3001/inserir_automovel
- Inserir novo automovel exemplo request:
{
"placa": "VEI0101",
"cor":"preto",
"marca":"Mercedes"
}
localhost:3001/atualizar_automovel
- Atualizar Automovel exemplo request:
{
"placa": "VEI0101",
"cor":"branco",
"marca":"Mercedes"
}
ocalhost:3001/deletar_automovel/VEI0101
- Para deletar insira a placa do automóvel;
- Recupera todos os Automoveis Cadastrados -
localhost:3001/retornar_automoveis
- Recupera Automovel por marca -
localhost:3001/retornar_automoveis?marca=chevrolet
- Recupera Automovel por Cor -
localhost:3001/retornar_automoveis?cor=branco
- Recupera Automovel por Cor e Marca -
localhost:3001/retornar_automoveis?cor=branco&marca=chevrolet
localhost:3001/cadastar_motorista
- Inserir novo motorista exemplo request:
{
"nome":"Josias Celestino",
"cpf":"45678901234"
}
localhost:3001/atualizar_motorista
- Atualizar motorista exemplo request:
{
"motorista_id": 5,
"nome": "Pedro de Oliveira",
"cpf": "56789012345"
}
localhost:3001//excluir_motorista/56789012345
- Para deletar insira o CPF do motorista;
- Recupera todos motoristas
- localhost:3001/retornar_motoristas
- Recupera motorista por CPF -
localhost:3001/retornar_motoristas?cpf=....
- Recupera motorista por nome ou parte do nome -
localhost:3001/retornar_motoristas?nome=...
localhost:3001/cadastar_usuario_automovel
- Cadastrar utilizacao do Automovel
- exemplo request
{
"motorista_id": 1,
"placa": "GHI9012",
"data_inicio": "2024-01-05 17:00:00",
"data_termino": null,
"motivo": "Buscar funcionario Aeroporto"
}
localhost:3001/iserir_termino
- Insere data de termino do uso do Automovel
- exemplo request
{
"id": 4,
"data_termino": "2024-01-05 07:00:00"
}
localhost:3001/retornar_automoveis_utilizados
- Retorna todos os automoveis utilizados
Instalando o Framewor JEST e o Supertest:
npm install --save-dev jest supertest
Rodando os testes:
npm test