Aplicativo de gerenciamento de reservas e vagas de parquímetros. Esta API permite criar, listar, atualizar e excluir reservas e vagas, integrando um sistema de documentação interativo via Swagger.
-
Reserva de Parquímetros:
- Criar, listar, atualizar e excluir reservas.
- Consultar tempo restante de uma reserva.
- Adicionar tempo à reserva existente.
-
Gerenciamento de Vagas:
- Criar e listar vagas.
- Consultar vaga por ID.
-
Swagger/OpenAPI:
- Documentação interativa acessível em
http://3.90.210.43:8080/swagger-ui/index.html
.
- Documentação interativa acessível em
-
Docker:
- Implementação via
Dockerfile
edocker-compose.yml
para execução local.
- Implementação via
- Java 17
- Maven 3.8+
- MongoDB (local ou em contêiner Docker)
- Docker (opcional, para execução via contêiner)
Certifique-se de que o MongoDB está rodando:
sudo systemctl start mongod
docker run -d -p 27017:27017 --name mongodb mongo:latest
git clone <URL_DO_REPOSITORIO>
cd <PASTA_DO_PROJETO>
Certifique-se de que o arquivo src/main/resources/application.properties
está configurado para conectar ao MongoDB:
spring.data.mongodb.uri=mongodb://localhost:27017/parquimetro
mvn clean spring-boot:run
A API estará acessível em:
http://localhost:8080
docker build -t parquimetro-service:latest .
docker-compose up -d
Acesse a API em:
http://localhost:8080
-
Criar Reserva:
- POST
/reservas
- Exemplo de corpo da requisição:
{ "tempoSolicitadoMinutos": 60, "status": "PENDENTE", "vaga": { "id": "123" } }
- POST
-
Listar Reservas:
- GET
/reservas
- GET
-
Consultar Reserva por ID:
- GET
/reservas/{id}
- GET
-
Atualizar Reserva:
- PUT
/reservas/{id}
- Exemplo de corpo da requisição:
{ "tempoSolicitadoMinutos": 90, "status": "CONFIRMADA" }
- PUT
-
Excluir Reserva:
- DELETE
/reservas/{id}
- DELETE
-
Criar Vaga:
- POST
/vagas
- Exemplo de corpo da requisição:
{ "numero": 34 "regiao": {"nome": "Sul"} }
- POST
-
Listar Vagas:
- GET
/vagas
- GET
-
Consultar Vaga por ID:
- GET
/vagas/{id}
- GET
A documentação interativa pode ser acessada em:
http://localhost:8080/swagger-ui.html
- Spring Boot
- MongoDB
- Springdoc OpenAPI (Swagger)
- Lombok
- Docker