Neste código foi feito um webservice REST com operações para o registro de Veículos, Clientes, o Aluguél de Veículos e Reserva de Veículos.
- Spring - v6.2.x - Framework Web Java/Kotlin MVW
- Spring Boot - v3.5.9 - Framework Initializer
- Java - v21 - Linguagem
- Hibernate - v6.x - ORM
- Tomcat - v10.x - Servidor
- springdoc-openapi - v2.8.0 - Gerenciador de Documentação e Testes Funcionais (OpenAPI 3)
- MySQL - v8.x - SGBD
- Intellij IDEA - IDE
Clone o projeto e importe com a IDE suportada que lhe convir como um projeto Maven.
Caso venha a usar o MySQL como persistencia o projeto já está com o driver do mesmo instalado, então vá para:
src > main > resources > application.properties
E ajuste os dados de Endereço, Timezone, Usuário e Senha de acordo com as configurações do seu banco.
Caso venha a utilizar outro banco será necessário adicionar o Driver do mesmo no pom.xml. Após isso, vá ao application.properties e ajuste os dados de acordo com o seu SGBD.
Agora aguarde sua IDE baixar as dependencias ou execute o mvn spring-boot:run caso tenha configurado o Maven separadamente.
- Não é possível alugar um veículo que já esteja reservado
- Não é possível reservar um veículo que já esteja alugado
- Não é possível alugar ou reservar (multuamente excludentes) mais de um veículo
- Não é possível alugar ou reservar um veículo por mais de um ano
Estas são as rodas para uso deste webservice:
| Função | Rota | Parametro | Tipo |
|---|---|---|---|
| Listar Todos | /clientes | Nenhum | GET |
| Exibir | /cliente/id | ID do Cliente | GET |
| Cadastrar | /cliente | JSON do Cliente + Confirmação de senha | POST |
| Editar | /cliente/id | ID do Cliente | PUT |
| Remover | /cliente/id | ID do Cliente | DELETE |
| Função | Rota | Parametro | Tipo |
|---|---|---|---|
| Listar Todos | /veiculos | Nenhum | GET |
| Exibir | /veiculo/id | ID do Veículo | GET |
| Cadastrar | /veiculo | JSON do Veículo | POST |
| Editar | /veiculo/id | ID do Veículo | PUT |
| Remover | /veiculo/id | ID do Veículo | DELETE |
| Função | Rota | Parametro | Tipo |
|---|---|---|---|
| Listar Todas | /reservas | Nenhum | GET |
| Exibir | /reservas/id | ID da Reserva | GET |
| Cadastrar | /reservas | JSON do Reserva | POST |
| Editar | /reservas/id | ID do Reserva | PUT |
| Remover | /reservas/id | ID do Reserva | DELETE |
| Listar Todas Referentes a um Cliente em Específico | /reservas/id_cliente | Nenhum | GET |
| Listar Todas Referentes a um Veículo em Específico | /reservas/id_veiculo | Nenhum | GET |
| Função | Rota | Parametro | Tipo |
|---|---|---|---|
| Listar Todas | /alugueis | Nenhum | GET |
| Exibir | /aluguel/id | ID da Aluguel | GET |
| Cadastrar | /aluguel | JSON do Aluguel | POST |
| Editar | /aluguel/id | ID do Aluguel | PUT |
| Remover | /aluguel/id | ID do Aluguel | DELETE |
| Listar Todas Referentes a um Cliente em Específico | /aluguel/id_cliente | Nenhum | GET |
| Listar Todas Referentes a um Veículo em Específico | /aluguel/id_veiculo | Nenhum | GET |
http://localhost:8080/swagger-ui/index.html
