Projeto desenvolvido teve o objetivo de criar um API Rest, utilizando os padrões de arquitetura em camadas, onde é possível cadastrar uma pessoa, atualizar, deletar, realizar consultas por id e paginadas, e com devido tratamento de suas exceções, além de realização de teste automatizados na camada de services, respositories e controllers.
- Projeto implementado na nuvem com heroku.
Experimente live demo.
Criar e executar o projeto em seu ambiente de desenvolvimento local é muito fácil. Certifique-se de ter o Git, JDK17 e banco PostgreSQL instalados e siga as instruções abaixo. Precisa de informações adicionais? entre em contato no e-mail josecarloscjj@gmail.com (Estas instruções pressupõem que você esteja instalando como um usuário root.)
-
Clone o código fonte
git clone git@github.com:joosecj/PersonAPI.git
-
Em sua IDE de preferência(utilizei Intellij), importe a pasta backend e faça o update das dependências do maven.
-
Antes de executar o projeto, verificar se o arquivo dentro da pasta RESOURCES chamado application.properties esteja configurado com sua variável de ambiente como test, assim o projeto será rodado no bando H2, sem necessidade de configurar seu postgreSQL localmente, porém caso decida utilizar será necessário alterar o arquivo application-dev.properties com as configurações do banco de dados local. Exemplo abaixo de como deve ficar o arquivo:
spring.profiles.active=${APP_PROFILE:test}
-
Ao executar o projeto, pode ser acessado no navegador da Web em http://localhost:8080/ ou poderá usar Api implementada no heroku através do link: https://joosecj-personapi.herokuapp.com
-
Collections do postman para fazer as requisições GET/PUT/DELETE E UPDATE - Onde pode ser trocada a variável de ambiente, que inicialmente está configurada com link da api no heroku.
Link da Collections do postman: https://www.getpostman.com/collections/e575eec425356a984f4a
Obs: Para testar as requisições, poderá usar o URL na nuvem ou local que e http://localhost:8080.
-
Pessoa By Id - GET
https://joosecj-personapi.herokuapp.com/pessoa/1
-
Pessoa By Pagead - GET
https://joosecj-personapi.herokuapp.com/pessoa?size=10&page=0&sort=name,asc
-
Nova Pessoa - POST
https://joosecj-personapi.herokuapp.com/pessoa
-
Pessoa - PUT
https://joosecj-personapi.herokuapp.com/pessoa/1
-
Pessoa - DELETE
https://joosecj-personapi.herokuapp.com/pessoa/1
-
Corpo da Requisição(Body) - JSON - PUT e POST
{ "name": "Jose Carlos", "email": "josecj@gmail.com", "birthDate": "1994-07-20" }
- Java
- Spring Boot
- JPA
- Maven
- H2 Database
- PostgreSQL
- Spring Security
- Teste Automatizados com JUnit
- Postman