O projeto Curso Literalura é uma aplicação desenvolvida em Java utilizando o framework Spring Boot 3. O objetivo deste projeto é consumir dados da API do Gutendex, que fornece informações sobre livros e autores, e armazenar essas informações em um banco de dados PostgreSQL. A aplicação permite realizar diversas operações, como busca de livros por título, listagem de livros e autores registrados, listagem de autores vivos em determinado ano, listagem de livros por idioma, exibição dos top 10 livros mais baixados, busca de autores por nome e cálculo da média de downloads por autor.
- Buscar Livro pelo Título: Permite buscar um novo livro pelo título na API do Gutendex e salvá-lo no banco de dados.
- Listar Livros Registrados: Exibe todos os livros que estão registrados no banco de dados.
- Listar Autores Registrados: Exibe todos os autores que estão registrados no banco de dados.
- Listar Autores Vivos em Determinado Ano: Permite buscar e listar autores que estavam vivos em um determinado ano.
- Listar Livros em Determinado Idioma: Exibe todos os livros cadastrados em um idioma específico.
- Top 10 Livros: Mostra os 10 livros mais baixados registrados no banco de dados.
- Buscar Autores por Nome: Permite buscar autores por nome no banco de dados.
- Média de Downloads por Autor: Calcula e exibe a média de downloads dos livros de um autor específico.
- Autor: Representa a entidade de Autor, com atributos como nome, data de nascimento, data de falecimento e lista de livros.
- Livro: Representa a entidade de Livro, com atributos como nome, idioma, quantidade de downloads e autor.
- DadosAutor: Record que mapeia os dados do autor recebidos da API do Gutendex.
- DadosLivro: Record que mapeia os dados do livro recebidos da API do Gutendex.
- AutorRepository: Interface que estende JpaRepository para realizar operações de CRUD e consultas personalizadas na entidade Autor.
- LivroRepository: Interface que estende JpaRepository para realizar operações de CRUD e consultas personalizadas na entidade Livro.
- ConsumoApi: Classe responsável por consumir a API do Gutendex.
- DadosConverter: Classe responsável por converter os dados recebidos da API para os modelos utilizados na aplicação.
- Principal: Classe principal que contém o menu de opções e as funcionalidades da aplicação.
- Java 17
- Maven
- PostgreSQL
Configure o arquivo application.properties
com as seguintes informações:
spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME} spring.datasource.username=${DB_USER} spring.datasource.password=${DB_PASSWORD} spring.datasource.driver-class-name=org.postgresql.Driver hibernate.dialect=org.hibernate.dialect.HSQLDialect
spring.jpa.show-sql=false spring.jpa.format-sql=true spring.jpa.hibernate.ddl-auto=update
Substitua ${DB_HOST}
, ${DB_NAME}
, ${DB_USER}
e ${DB_PASSWORD}
pelos valores apropriados para o seu ambiente.
As principais dependências do projeto são:
- Spring Boot Starter Data JPA
- Spring Boot Starter Web
- PostgreSQL Driver
- Lombok
- Jackson Databind
Para executar a aplicação, siga os passos abaixo:
- Clone o repositório:
git clone https://github.com/madogap/alura-literalura2024.git
- Navegue até o diretório do projeto:
cd projeto-literalura
- Compile e execute a aplicação utilizando o Maven:
mvn spring-boot:run
A aplicação estará disponível e pronta para uso. Use o menu de opções para interagir com as funcionalidades disponíveis.
Sinta-se à vontade para contribuir com este projeto. Para contribuir, faça um fork do repositório, crie um branch para suas alterações e envie um pull request.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE
para mais detalhes.
Siga os passos abaixo para criar o projeto usando o Spring Initializr:
- Acesse o site Spring Initializr.
- Configure as opções do projeto:
- Project: Maven Project
- Language: Java
- Spring Boot: 3.0.0
- Project Metadata:
- Group: com.exemplo
- Artifact: curso-literalura
- Name: Curso Literalura
- Description: Projeto para consumir a API do Gutendex e armazenar dados no PostgreSQL
- Package Name: com.exemplo.cursoliteralura
- Packaging: Jar
- Java: 17
- Adicione as dependências necessárias:
- Spring Web
- Spring Data JPA
- PostgreSQL Driver
- Lombok
- Clique em Generate para baixar o projeto.
- Extraia o projeto baixado em um diretório de sua escolha.
Siga os passos abaixo para fazer o clone do projeto:
- Abra um terminal.
- Navegue até o diretório onde deseja clonar o projeto.
- Execute o comando:
git clone https://github.com/usuario/projeto-literalura.git
- Navegue até o diretório do projeto clonado:
cd projeto-literalura
Para executar a aplicação, siga os passos abaixo:
- Compile e execute a aplicação utilizando o Maven:
mvn spring-boot:run
A aplicação estará disponível e pronta para uso. Use o menu de opções para interagir com as funcionalidades disponíveis.
Sinta-se à vontade para contribuir com este projeto. Para contribuir, faça um fork do repositório, crie um branch para suas alterações e envie um pull request.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE
para mais detalhes.