Lista 009 - Persistência
Exercício 1 - JSON de catálogo de jogos
Seção intitulada “Exercício 1 - JSON de catálogo de jogos”Crie a estrutura JSON para representar um catálogo simples de jogos digitais.
Requisitos
Seção intitulada “Requisitos”- O catálogo deve conter pelo menos 3 jogos.
- Cada jogo deve possuir os atributos:
id,titulo,estudio,anoLancamento,precoecategorias. - Pelo menos um dos jogos deve possuir uma lista com 3 categorias.
- Crie um segundo JSON representando a compra de um jogo por um cliente.
- O JSON da compra deve conter:
id,cliente,email,jogoId,valorPagoedataCompra.
Entrega esperada
Seção intitulada “Entrega esperada”- Um arquivo
.jsoncom o catálogo. - Um arquivo
.jsoncom uma compra. - Uma explicação curta indicando quais campos representam texto, número, lista e identificador.
Exercício 2 - Persistência de dados com Spring Data JPA
Seção intitulada “Exercício 2 - Persistência de dados com Spring Data JPA”Implemente a persistência de uma entidade chamada Jogo em uma aplicação Spring Boot.
Requisitos
Seção intitulada “Requisitos”- Crie um projeto com as dependências
Spring Web,Spring Data JPAeH2 Database. - Crie a entidade
Jogocom os atributos:id,titulo,estudio,anoLancamentoepreco. - Configure o banco H2 e habilite o console do banco.
- Crie um
JogoRepositoryusandoJpaRepository. - Crie pelo menos um endpoint
POST /jogospara cadastrar um jogo. - Crie pelo menos um endpoint
GET /jogospara listar todos os jogos. - Crie pelo menos um endpoint
GET /jogos/{id}para buscar um jogo por identificador.
Entrega esperada
Seção intitulada “Entrega esperada”- Código-fonte da aplicação.
- Prints ou testes mostrando inserção e consulta de dados persistidos.
Exercício 3 - DTOs de entrada e saída
Seção intitulada “Exercício 3 - DTOs de entrada e saída”Refatore a API do exercício anterior para que ela não exponha a entidade Jogo diretamente nos endpoints.
Requisitos
Seção intitulada “Requisitos”- Crie um DTO de entrada chamado
JogoRequestDTO. - Crie um DTO de saída chamado
JogoResponseDTO. - O DTO de entrada deve conter apenas os dados necessários para cadastro.
- O DTO de saída deve conter os dados retornados ao cliente.
- Atualize o
POST /jogospara receberJogoRequestDTO. - Atualize o
GET /jogose oGET /jogos/{id}para retornarJogoResponseDTO.
Exercício 4 - Mapping entre Entity e DTO
Seção intitulada “Exercício 4 - Mapping entre Entity e DTO”Implemente a conversão entre entidade e DTO na aplicação de jogos.
Requisitos
Seção intitulada “Requisitos”- Crie uma classe responsável pelo mapping, como
JogoMapper. - Implemente um método para converter
JogoRequestDTOemJogo. - Implemente um método para converter
JogoemJogoResponseDTO. - Use esse mapper dentro da camada de
service. - Garanta que o
controllertrabalhe apenas com DTOs.
Desafio extra
Seção intitulada “Desafio extra”Adicione um novo atributo disponivel na entidade e decida se ele deve ou não aparecer no DTO de resposta. Justifique sua escolha.