Este projeto é parte de um desafio de desenvolvimento de uma API para gestão de rotas de GPS. A API permite cadastrar e listar rotas.
- Listar rotas cadastradas
- Cadastrar uma nova rota, definindo:
- nome da rota
- latitude e longitude da origem
- latitude e longitude do destino
O projeto foi desenvolvido utilizando as seguintes tecnologias:
- Node.js: Plataforma de desenvolvimento JavaScript.
- Nest.js: Framework para desenvolvimento de APIs em Node.js.
- MongoDB: Banco de dados NoSQL para persistência dos dados.
- Prisma: ORM (Object-Relational Mapping) para interação com o banco de dados.
- Docker: Plataforma para criação e gerenciamento de containers.
Certifique-se de ter as seguintes ferramentas instaladas em seu ambiente de desenvolvimento:
- Node.js (versão 18.16.1)
- Docker
Siga estas etapas para configurar e executar o projeto em sua máquina local:
- Clone este repositório:
git clone https://github.com/guilhermealves-dev/nestjs-api-fullcycle-challenge-1-routes.git
- Navegue até o diretório do projeto:
cd nestjs-api-fullcycle-challenge-1-routes
- Execute o comando:
docker compose up
para iniciar o MongoDB mais a aplicação da API - O servidor estará acessível em:
http://localhost:3000
- Para fazer as chamadas para a API, instale a extensão
REST Client
no Visual Studio Code e abra o arquivoapi.http
, em seguida clique no botões Send Request - Alternativamente, também foi disponibilizado uma Collection do Postman no diretório:
../postman-collection/*
A API possui os seguintes endpoints para interação:
- URL:
/api/routes
- Método: POST
- Descrição: Cadastra uma nova rota.
- Corpo da Requisição:
- Estrutura:
{ "name": "Rota para entrega de produto", "source": { "lat": -23.558125982978147, "lng": -46.6150131207001 }, "destination": { "lat": -23.55113706367705, "lng": -46.63464133665705 } }
- Estrutura:
- Resposta de Sucesso:
- Código: 201 (Created)
- Exemplo de Resposta:
{ "source": { "lat": -23.55812598297815, "lng": -46.6150131207001 }, "destination": { "lat": -23.55113706367705, "lng": -46.63464133665705 }, "id": "64e77ce430f61508dd21d0b5", "name": "Rota para entrega de produto" }
- URL:
/api/routes
- Método: GET
- Descrição: Retorna todas as rotas cadastrados.
- Resposta de Sucesso:
- Código: 200 (OK)
- Exemplo de Resposta:
[ { "source": { "lat": -23.55812598297815, "lng": -46.6150131207001 }, "destination": { "lat": -23.55113706367705, "lng": -46.63464133665705 }, "id": "64e77ce430f61508dd21d0b5", "name": "Rota para entrega de produto" } ]
Gostaria de expressar gratidão à Full Cycle pelos ensinamentos valiosos fornecidos durante essa semana da Imersão Full Stack. Agradeço por proporcionar a oportunidade de aprender e aplicar esses novos conhecimentos.