Prova de Conceito (POC) utilizando: AngularJs com Bootstrap no frontend e RESTfull API com SpringBoot no backend. OBS: O frontend em AngularJs está embeded no springboot na pasta main/resources/static sendo startado com o embed tomcat do SpringBoot.
Conceitos abordados:
- Two Way Data Binding
- Criação e uso de Diretivas
- Validação de Formulários
- Criação e uso de Filtros
- Interação com a RESTfull API via Ajax
- Modularização do Projeto
- Single-Page Application e Interceptors
- O Template do Projeto (Blank Project) foi gerado automaticamente pela ferramenta https://start.spring.io/ e em seguida importado como um Projeto Maven para o Eclipse.
- Foram selecionadas as seguintes dependências na geração:
- DevTools
- Web
- Hateoas
- JPA
- MySQL (para ambiente de desenvolvimento)
- PostgreSQL (para ambiente de produção)
- Building e deploy da app na Amazon AWS: http://ec2-18-231-160-253.sa-east-1.compute.amazonaws.com:8080
- Foi criada uma API RESTfull com o uso do SpringBoot, utilizando as seguintes annotations:
- @RestController
- @RequestMapping
- @GetMapping
- @ResponseBody
- @RequestBody
- @PostMapping
- @DeleteMapping
- Foi utilizado o JPA para consulta e persistências no banco de dados, assim como os mapeamentos @ManyToOne e @OneToMany entre as entidades Contato e Operadora do modelo.
- Foi utilizado o Swagger-UI para geração de interface web para API, facilitando assim a sua documentação e a interação com os seus recursos.
http://ec2-18-231-160-253.sa-east-1.compute.amazonaws.com:8080/swagger-ui.html
EndPoints:
- http://ec2-18-231-160-253.sa-east-1.compute.amazonaws.com:8080/contato
- http://ec2-18-231-160-253.sa-east-1.compute.amazonaws.com:8080/operadora
-
Configurar o parâmetro spring.profiles.active no arquivo de propriedades (src\main\resources\application.properties)
spring.profiles.active=dev Executa o projeto apontando para um banco de dados MySql local spring.profiles.active=prod Executa o projeto apontando para um banco de dados PostgreSQL na Amazon RDS -
Criar um schema com o nome "poc" caso utilize MySql.
CREATE SCHEMA poc; -
Criar um database com o nome "poc" caso utilize PostgreSQL.
CREATE DATABASE poc; -
Configurar no angularJs a url da api rest
No arquivo: src/main/resources/static/js/value/configValue.js
angular.module("listaTelefonica").value("config", { baseUrl: "http://ec2-18-231-160-253.sa-east-1.compute.amazonaws.com:8080/" }); -
Inicializar o projeto:
4.1) Com o maven:
mvn spring-boot:run4.2) Diretamente pelo Jar da aplicação escolhendo o ambiente (dev ou prod):
java -jar -Dspring.profiles.active=prod poc-0.0.1-SNAPSHOT.jar
