Este repositório contém o código-fonte e as configurações necessárias para executar a API de Destinos de Viagem desenvolvida como parte do Challenge Backend 7ª edição da Alura. A API fornece informações sobre destinos de viagem, depoimentos de viajantes e integração com uma IA para aprimorar a experiência do usuário.
🪧 Vitrine.Dev | |
---|---|
✨ Nome | Projeto API de Destinos de Viagem |
🏷️ Tecnologias | Kotlin, SpringBoot, Docker, mySQL, OpenAI |
🚀 URL | |
🔥 Desafio | Backend 7ª edição |
O projeto foi desenvolvido utilizando as seguintes tecnologias e bibliotecas:
- Spring Boot: Framework Java para criação de aplicações web e APIs.
- Spring Data JPA: Biblioteca para acesso e manipulação de bancos de dados utilizando JPA.
- Spring Validation: Biblioteca para validação de dados de entrada.
- Spring Web: Biblioteca para criação de endpoints REST.
- Spring Security: Biblioteca para autenticação e autorização.
- Jackson Module Kotlin: Suporte para a serialização e desserialização de objetos Kotlin em JSON.
- MySQL Connector: Driver de conexão com o banco de dados MySQL.
- Flyway: Biblioteca para controle de versão e migração de bancos de dados.
- Kotlin Reflect: Biblioteca para introspecção e reflexão em Kotlin.
- Java JWT: Biblioteca para criação e validação de JSON Web Tokens (JWT).
- OpenAI Client: Biblioteca para integração com a API da OpenAI.
- Ktor Client OkHttp: Cliente HTTP para o framework Ktor.
- Springdoc OpenAPI: Biblioteca para geração de documentação OpenAPI.
Certifique-se de ter as seguintes ferramentas instaladas em sua máquina:
- Em src/main/resources/application.yml, configure a chave secreta da OpenAI, substituindo os valores 123456 pelos valores reais ou configurando em variáveis de ambiente.
obs: Caso não tenha uma conta na openAi para utilizar sua chave secreta, o GPT não será utilizado pela API - Faça o build do projeto com:
./gradlew clean build
- No terminal, na pasta raiz do projeto, gere uma imagem docker:
docker build -t jornada-milhas-api-dev -f Dockerfile-dev .
- Abra e execute o arquivo docker-compose, ou, via terminal:
docker compose -p jornada-milhas-api-dev up
- A aplicação estará disponível em http://localhost:8080.
Para testar a API, pode-se utilizar Postman ou ferramenta semelhante acesando a url http://localhost:8080/(endpoint_desejado).
Porém, para facilitar, está disponibilizado o Swagger-UI em http://localhost:8080 pelo navegador.
A partir do Swagger UI, diretamente no navegador você pode explorar todos os endpoints disponíveis, visualizar os parâmetros necessários para cada requisição, bem como testar cada endpoint interativamente.
- Após a API estar em execução, acesse: http://localhost:8080/
- A API possui segurança de Token JWT e Role. Informações sobre Login e recebimento de Token JWT estarão no Swagger-UI