Loading repository data…
Loading repository data…
vitrosmachado / repository
Ainda em andamento. Esse é uma projeto web services, com Spring Boot, JPA/Hibernate e Heroku construída em um dos cusros do professor Dr.Nelio Alves DevSuperior.
Ainda em andamento. Esse é uma projeto web services, com Spring Boot, JPA/Hibernate e Heroku construída em um dos cusros do professor Dr.Nelio Alves DevSuperior.
Futuramente será implementado testes unitários e uma descrição detalhada de cada parte do projeto.

Na criação de entidades e recursos, segui os seguintes passos:
Para a camada de repositórios apenas extendi o org.springframework.data.jpa.repository.JpaRepository para cada serviço e a classe OrdemItem.
Quem irá ter acesso ao repositório e manter a lógica de negócio é a camada de serviço, que, por sua vez, é chamada na camada de recursos. Os recursos recebem a requisição, enviam pra camada de serviço que processa ou envia para o repositório, dai então o resultado é retornado para a camada de recursos e enviada de volta para a aplicação.
Na classe TestConfig na pasta Config, está o povoamento do banco de dados para o profile de test.
# clonar repositório
git clone git@github.com:BotRajj/workshop-springboot3-jpa.git
Nessa aplicação, utilizamos dois bancos de dados, H2 database (para o ambiente de testes) e o Postgresql (para o desenvolvimento, na máquina local, e de produção, com um servidor rodando no Heroku). O profile pode ser alterados no arquivo application.properties, campo:
spring.profiles.active= test/prod/dev
Utilizei o banco de dados H2, que não persiste os dados após a interrução da aplicação. A vizualição do banco de dados só é possível após a execução da aplicação e no caminho no navegador http://localhost:8080/h2-console. Os campos que aparecerão devem ser preenchidos de acordo com o arquivo application-test.properties.
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
Com o banco de dados Postgresql, os dados persistem após a interrupção da aplicação. Antes da execução, crie um database no Postgresql com o nome "spring-jpa-course". Altere os campos username e password no arquivo application-dev.properties de acordo com os do seu Postgresql.
spring.datasource.url=jdbc:postgresql://localhost:5432/spring-jpa-course
spring.datasource.username=postgres
spring.datasource.password=12345678
Já na implementação Heroku, uma hospedagem paga que os dados serão enviados para um deploy online, você precisa criar um app na plataforma e adicionar no dashbord o Postgres.
Após isso, na aba deploy do app, estará disponível o comando que será utilizado para fazer o doploy utilizando git, algo como:
$ git heroku git:remote -a nome-do-servidor
Ao final será disponibilizado um link para as requisições.
Utilizando o Postman, seguimos para as requisições.
Esse projeto já está implementado no Heroku, sendo possível fazer as requisições com o caminho:
Exemplo: https://coure-javasb3-e46136a3d1e0.herokuapp.com/endpoint
Ou utilize o caminho da sua implementação, caso já tenha.
E para execução local, os profile test e dev utiliza o caminho padrão:
Exemplo: http://localhost:8080/endpoint
Enviando com o método GET, essa requisição retorna todos os recurso de cada.
Enviando com o método GET, essa requisição retorna apenas um recurso espeficicado.
No caso do recurso não encontrado, o tratamento de exceções irá retorna 404 - Not found, a mensagem "Resource not found. Id + id" e um objeto de exceção manualmente tratado.
Classes envolvidas no tratamento de exceções
###/Users
Para inserção de usuários, com o método POST e no Body, subaba raw, formato JSON, enviamos os seguintes campos para inserção. Nessa requisição o esperado é o 201 Created, indicando que foi criado com sucesso.
{
"name": "Nome",
"email": "Email@email.com",
"phone": "1234-1234",
"password": "Senha"
}
Será implementada a criação dos demais recursos.
###/Users/Id
Para deletação de usuários, com o método DELETE, essa requisição irá deletar o usuário espeficiado. Nessa requisição o esperado são os retornos:
No caso do recurso não encontrado, o tratamento de exceções irá retorna 404 - Not found e um objeto de exceção manualmente tratado.
Classes envolvidas
Será implementada a deleção dos demais recursos.
/Users Para atualização de usuários, com o método PUT e no Body, subaba raw, formato JSON, enviamos os seguintes campos para atualização. Nessa requisição o esperado é o 200 OK, onde foi possível a atualização do usuário.
{
"name": "Nome",
"email": "Email@email.com",
"phone": "1234-1234"
}
No caso do recurso não encontrado, o tratamento de exceções irá retorna 404 - Not found e um objeto de exceção manualmente tratado.
Classes envolvidas
Será implementada a atualização dos demais recursos.
Vitor Silva Machado