Faça um clone desse repositório
Na pasta root do projeto:
-
Opção 1:
- Execute o comando
npm install -g .
para instalar a cli de forma global; - Exexute o comando
travel {arquivo}
, por exemplotravel input-routes.csv
para rodar a aplicação
- Execute o comando
-
Opção 2:
- Exexute o comando
node . {arquivo}
, por exemplonode . input-routes.csv
para rodar a aplicação
- Exexute o comando
A API irá iniciar por padrão na porta 8000, após a execução de qualquer uma das opções acima.
Você pode alterar a porta adicionando a variável
PORT
ao comando. Exemplo:PORT=8001 node . {arquivo}
ouPORT=8001 travel {arquivo}
- Execute o comando
npm install
ouyarn install
para instalar as dependências necessárias para executar os testes - Execute o comando
npm run test
ouyarn test
para rodar os testes
A estrutura foi projetada para deixar o mais simples e intuitivo possível, idealizando a fácil adição e manutenção de código.
Controllers
A camada de controllers é responsável por manipular solicitações recebidas e retornar uma resposta ao cliente.
Services
A camada responsável por abstrair as regras de negócio, permitindo que o controller tenha responsabilidade única.
Shared
Trechos de código pequeno que são utilizado por mais de uma classe. Funções que são utilizadas para auxiliar na construção de um código maior e podendo ser utilizado em qualquer parte das camadas da aplicação.
- Foi decidido desenvolver a solução com Node.js buscando tornar o desenvolvimento mais rápido e produtivo.
- Como recomendado, não foi utilizado nenhum framework ou biblioteca externas para o desenvolvimento da solução.
- Não foi utilizado TypeScript, seguindo a recomendação de não utilizar nada externo.
- Foi mantido um código simples e o mais limpo possível.
Path | Method | Descrição | Body |
---|---|---|---|
/routes |
POST |
Registra uma nova rota | Exemplo: { "source": "BRC", "destination": "ORL", "cost": 10 } |
/routes?source={origem}&destination={destino} |
GET |
Busca pelo melhar rota (a mais barata e menor entre elas) | none |