O projeto foi desenvolvido no Framework Spring, utilizando a arquitetura API Rest e a comunicação com o banco de dados.
Diferencial: Reposicionar os jogos na coleção, atualizando as informações diretamente no banco de dados.
Agora, organizar sua coleção nunca foi tão fácil e eficiente!
As seguintes tecnologias foram usadas na construção do projeto:
- Sistemas web e recursos
- Cliente/servidor, HTTP, JSON
- Padrão Rest para API web
- Estruturação de projeto Spring Rest
- Entidades e Mapeamento Objeto-Relacional (ORM)
- Database Seeding
- Padrão camadas
- Controller, Service, Repository
- Modelo de domínio
- Padrão DTO
- Relacionamentos N-N
- Classe de associação, Embedded id
- Consultas SQL no Spring Data JPA
- Projections
classDiagram
class Game {
- id : Long
- title : String
- year : Integer
- genre : String
- platforms : String
- score : Double
- imgUrl : String
- shortDescription : String
- longDescription : String
+ findAll()
+ findById(Long id)
+ findByList(Long listId)
}
class GameList {
- id : Long
- name : String
+ findAll()
+ move(Long listId, int sourceIndex, int destinationIndex)
}
class Belonging {
- id : BelongingPK
- position : Integer
}
class BelongingPK {
- game : Game
- list : GameList
}
Game -- Belonging : n-to-n
GameList -- Belonging : n-to-n
O Projeto é composto por 3 Recursos (Conjunto de Classes e Interfaces responsáveis por mapear um tipo de Objeto e persistir no Banco de dados Relacional) e uma Classe auxiliar:
Classe | Descrição |
---|---|
Game | Recurso responsável por definir o Objeto Game (jogos da nossa coleção) |
GameList | Recurso responsável por definir o Objeto GameList (coleção) |
Belonging | Classe de associação entre Game e GameList. Recurso responsável por indicar a posição do Game dentro do GameList. |
Belonging PK | Classe auxiliar, que será utilizada como chave primaria múltipla, composto por 2 atributos ‘game_id’ e ‘list_id’ |
Cada Recurso gera uma tabela no Banco de dados da aplicação, exceto a Classe auxiliar.
Abaixo consta os recursos da API:
Dependência | Descrição |
---|---|
Spring Web | Essa dependência fornece todas as bibliotecas necessárias para criar um projeto WEB e trabalhar com o protocolo HTTP/HTTPS. |
Spring Data JPA | Java Persistence API (JPA) é uma Biblioteca que armazena e recupera Objetos, que foram persistidos (armazenados) em um Bancos de Dados. |
PostgreSQL Driver | Responsável pela conexão entre nossa aplicação e o Banco de Dados PostgreSQL |
H2 Database | Responsável pela conexão entre nossa aplicação e o Banco de Dados H2 |