MeteoTrip é uma API inteligente que sugere lugares para visitar em uma cidade, com base no estado e no tipo de viagem (turismo, negócios, aventura, entre outros). A aplicação oferece a possibilidade de cadastrar cidades, listar as cidades cadastradas, e gerar roteiros personalizados para viagens.
- Java: Linguagem de programação principal.
- Spring Boot: Framework para construção de APIs RESTful.
- Reactor: Para suporte a programação reativa com
Mono
eFlux
. - H2 Database: Banco de dados em memória para armazenamento das cidades.
- Gemini API: Utilizada para gerar sugestões de itinerários de viagem.
- Lombok: Biblioteca para simplificar a criação de getters, setters e construtores.
- Java 17+
- Maven
- IDE de sua preferência (IntelliJ, Eclipse, VS Code, etc.)
-
Clone o repositório para sua máquina local:
git clone https://github.com/BrisaTielly/MeteoTrip.git
-
Navegue até o diretório do projeto:
cd MeteoTrip
-
Compile e execute o projeto com Maven:
mvn clean spring-boot:run
-
A API estará disponível em
http://localhost:8080
.
POST /city/save
Cadastra uma nova cidade.
Corpo da Requisição (JSON):
{
"name": "São Paulo",
"state": "SP",
"tripType": "TOURISM"
}
Resposta:
{
"id": 1,
"name": "São Paulo",
"state": "SP",
"tripType": "TOURISM"
}
GET /city/list
Retorna todas as cidades cadastradas.
Resposta:
[
{
"id": 1,
"name": "São Paulo",
"state": "SP",
"tripType": "TOURISM"
},
...
]
GET /city/list/{id}
Retorna a cidade com o ID especificado.
Exemplo de Requisição: /city/list/1
Resposta:
{
"id": 1,
"name": "São Paulo",
"state": "SP",
"tripType": "TOURISM"
}
PUT /city/update/{id}
Atualiza os dados de uma cidade existente.
Corpo da Requisição (JSON):
{
"name": "Rio de Janeiro",
"state": "RJ",
"tripType": "ADVENTURE"
}
Resposta:
{
"id": 1,
"name": "Rio de Janeiro",
"state": "RJ",
"tripType": "ADVENTURE"
}
DELETE /city/delete/{id}
Deleta a cidade com o ID especificado.
Exemplo de Requisição: /city/delete/1
Resposta:
"Deletado com sucesso"
GET /travel/generate
Gera sugestões de lugares para visitar na cidade especificada, com base no tipo de viagem.
- Cadastro de Cidades: O usuário pode cadastrar cidades, fornecendo o nome da cidade, o estado e o tipo de viagem (por exemplo, turismo, negócios, aventura).
- Geração de Roteiros: A cada solicitação de geração de itinerário, o sistema busca a cidade cadastrada e, com base no tipo de viagem, gera sugestões personalizadas.
- Banco de Dados: Utiliza o H2 para persistir as cidades, permitindo adicionar, listar, atualizar e excluir cidades cadastradas.
Os tipos de viagem disponíveis para as cidades são:
- TOURISM: Viagem voltada para turismo.
- BUSINESS: Viagem voltada para negócios.
- ADVENTURE: Viagem voltada para aventura.
- HONEYMOON: Viagem para lua de mel.
- FAMILY: Viagem para a família.
- CULTURAL: Viagem para imersão cultural.
- GASTRONOMIC: Viagem voltada para gastronomia.
- API_KEY: A chave necessária para interagir com a Gemini API para geração de roteiros.