Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/epicestudar/hostly-spring-api
API RESTful que será integrada e consumida pelo java swing
https://github.com/epicestudar/hostly-spring-api
api-rest maven mongodb spring-boot spring-security thunderclient
Last synced: 4 days ago
JSON representation
API RESTful que será integrada e consumida pelo java swing
- Host: GitHub
- URL: https://github.com/epicestudar/hostly-spring-api
- Owner: epicestudar
- License: gpl-3.0
- Created: 2024-10-03T14:15:50.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-10-17T13:02:17.000Z (20 days ago)
- Last Synced: 2024-11-02T01:07:33.600Z (4 days ago)
- Topics: api-rest, maven, mongodb, spring-boot, spring-security, thunderclient
- Language: Java
- Homepage:
- Size: 140 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Documentação da API - Sistema de Controle de Reservas de Hotel
### Visão Geral do Projeto
**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### Clone o repositório:
```bash
git clone https://github.com/epicestudar/Hostly-spring-API.git
```### Acesse o diretório:
```bash
cd hostly_api
```### Configure o application.properties:
```bash
spring.data.mongodb.uri=mongodb://localhost:27017/hostly
```### Instale as dependências no seu terminal:
```bash
mvn clean install
```### Execute o projeto:
```bash
mvn spring-boot:run
```### - Certifique-se de ter o [git](https://git-scm.com/downloads) e [maven](https://maven.apache.org/download.cgi) instalados.
### 4.1 Cadastro do Administrador
#### **POST /api/administrador**
Cadastra um administrador no sistema.- **URL para o Thunder Client:**
`http://localhost:8080/api/administrador`#### **Request Body:**
```json
{
"email": "[email protected]",
"senha": "12345678"
}
```#### **Response (201):**
```json
{
"mensagem": "Administrador cadastrado com sucesso!"
}
```
### 4.2 Cadastro do Hóspede#### **POST /api/hospedes**
Cadastra um hóspede no sistema.- **URL para o Thunder Client:**
`http://localhost:8080/api/hospedes`#### **Request Body:**
```json
{
"nome": "Vinicius",
"dataNascimento": "2006-02-06",
"telefone": "5519982501287",
"cpf": "12345678901",
"email": "[email protected]",
"senha": "12345678"
}
```#### **Response (201):**
```json
{
"mensagem": "Hóspede cadastrado com sucesso!"
}
```### 4.3 Cadastro do Quarto
#### **POST /api/quartos**
Cadastra um quarto no sistema.- **URL para o Thunder Client:**
`http://localhost:8080/api/quartos`#### **Request Body:**
```json
{
"codigoQuarto": "2A",
"tipoQuarto": "SUITE",
"capacidadeQuarto": 3,
"valorQuarto": 400.0
}
```#### **Response (201):**
```json
{
"mensagem": "Quarto cadastrado com sucesso!"
}
```
### 4.4 Realização de Reserva
#### **POST /api/reservas**
Realizar uma reserva de quarto.- **URL para o Thunder Client:**
`http://localhost:8080/api/reservas`#### **Request Body:**
```json
{
{
"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": "[email protected]",
"senha": "12345678",
"reservas": null
},
"quantidadeDiarias": 3,
"dataCheckIn": "2024-10-16",
"dataCheckOut": null,
"status": "CONFIRMADO",
"dataReserva": "2024-10-16"
}
}
```#### **Response (201):**
```json
{
"mensagem": "Reserva realizada com sucesso!"
}
```