Objetivo: A API do Sistema de Controle de Reservas de Hotel é responsável por permitir a autenticação de hóspedes, gerenciar reservas e listar quartos disponíveis. O sistema é integrado a uma interface em Java Swing usada por administradores para operações CRUD de hóspedes e quartos. Esta API utiliza Spring Boot e conecta-se ao MongoDB para persistência de dados.
- Java 17 (ou superior)
- Spring Boot
- Spring Web
- Spring Data MongoDB
- Spring DevTools
- Lombok
- Thymeleaf
- MongoDB
- Maven para gerenciamento de dependências
- Thunder Client para testes de API
git clone https://github.com/epicestudar/Hostly-spring-API.git
cd hostly_api
spring.data.mongodb.uri=mongodb://localhost:27017/hostly
mvn clean install
mvn spring-boot:run
Cadastra um administrador no sistema.
- URL para o Thunder Client:
http://localhost:8080/api/administrador
{
"email": "admin@hotel.com",
"senha": "12345678"
}
{
"mensagem": "Administrador cadastrado com sucesso!"
}
Cadastra um hóspede no sistema.
- URL para o Thunder Client:
http://localhost:8080/api/hospedes
{
"nome": "Vinicius",
"dataNascimento": "2006-02-06",
"telefone": "5519982501287",
"cpf": "12345678901",
"email": "vini@email.com",
"senha": "12345678"
}
{
"mensagem": "Hóspede cadastrado com sucesso!"
}
Cadastra um quarto no sistema.
- URL para o Thunder Client:
http://localhost:8080/api/quartos
{
"codigoQuarto": "2A",
"tipoQuarto": "SUITE",
"capacidadeQuarto": 3,
"valorQuarto": 400.0
}
{
"mensagem": "Quarto cadastrado com sucesso!"
}
Realizar uma reserva de quarto.
- URL para o Thunder Client:
http://localhost:8080/api/reservas
{
{
"id": "id_gerado_automaticamente",
"quarto": {
"id": "id_respectivo_do_quarto",
"codigoQuarto": "2A",
"tipoQuarto": "SUITE",
"capacidadeQuarto": 3,
"valorQuarto": 400.0,
"status": "RESERVADO",
"reservas": null
},
"hospede": {
"id": "id_respectivo_do_hospede",
"nome": "Vinicius",
"dataNascimento": "2006-02-06",
"telefone": "5519982501287",
"cpf": "12345678901",
"email": "vini@email.com",
"senha": "12345678",
"reservas": null
},
"quantidadeDiarias": 3,
"dataCheckIn": "2024-10-16",
"dataCheckOut": null,
"status": "CONFIRMADO",
"dataReserva": "2024-10-16"
}
}
{
"mensagem": "Reserva realizada com sucesso!"
}