Acompanhamento dos resultados em cursos.
Nesse intensivão de uma semana do devSuperior foi aprendido a estruturar uma api rest utilizando o framework spring no java, estruturando o projeto conforme o padrão de camadas, de maneira que seja fácil sua escalabilidade e sendo possível ver como é estruturado um projeto grande.
Nesse projeto foi possível entender como criar uma API utilizando o spring boot 3, como configurar e utilizar IDE para a programação com o java, foi apresentado um início de utilização de docker e deploy no Railway.
Dentre várias coisas que foram aprendidas durante essa semana, abaixo se encontra observações nas quais foram novidades para mim.
O uso do decorator @Entity faz com que a classe que está abaixo seja ligada a uma tabela no banco de dados.
O decorator @Table(name = “tb_game”) dá um nome pra tabela a qual a entitade vai se relacionar.
Foi necessário a criação da classe BelongingPK por estar no modelo de classes, não sendo possível a inclusão de mais de uma primary key por objeto, fazendo da classe BelongingPK como uma classe auxiliar, sendo assim, para gerar o hashcode da belongingPK, foi necessário a inclusão dos 2 objetos.
O uso do system.properties é dado para quando for utilizar deploy em sites como a Heroku.
Interfaces ficam na pasta projections, e são necessárias para definir o elemento retornado pelo query nativo do SQL.
Quando os parâmetros recebidos pelo constructor não tem o mesmo nome que ele vai receber na classe, não precisa de usar o this, por não haver ambiguidade.
O uso dos 2 métodos, se definem em diferenciar se haverá uma OPERAÇÃO IDEMPOTENTE, sendo que se utiliza PUT quando a operação for salva uma ou várias vezes e retornar o mesmo resultado, como a de salvar um endereço. se cada vez que chamar uma operação, ela retornar um resultado diferente, deve-se utilizar o método POST, por isso que foi utilizado ele na operação de atualizar a lista.
Pré-requisitos: Java 17
Pasta do projeto: apigamelist Seed para o SQL: seed Sql
# após clonar este repositório, executar o projeto com o comando:
./mvnw spring-boot:run
No arquivo postman endpoints contem o json para abrir no postman com todos os endpoints gerado por este projeto.
APP_PROFILE
DB_URL (Formato -> jdbc:postgresql://host:porta/nomedabase)
DB_USERNAME
DB_PASSWORD
CORS_ORIGINS
SELECT TB_BELONGING .\*, TB_GAME.TITLE FROM TB_BELONGING
INNER JOIN TB_GAME ON TB_GAME.ID = TB_BELONGING.GAME_ID
WHERE LIST_ID=2
ORDER BY POSITION
By Bruno Medeiros.