Skip to content

samarone/testeV1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teste V1

Este é projeto experimental de uma API Rest que cuida do ciclo de vida de uma entidade Cliente.

Começando

Segue então o passo a passo de como rodar o projeto em seu ambiente de desenvolvimento.

Pré-requisitos

  1. Git 2.7.4 ou superior
  2. Java JDK 1.8 ou superior
  3. Maven 3.5.3 ou superior
  4. Docker 18.06.1-ce ou superior (Opcional)
  5. Heroku CLI 7.18.10 ou superior (Opcional)

Os itens 4 e 5 serão usados para deploy na nuvem, caso não seja o objetivo, não se faz necessário a instalação dos mesmos.

Obtendo os fontes

  1. Fazer o checkout do projeto em: https://github.com/samarone/testeV1
$ git clone https://github.com/samarone/testeV1
  1. Entrar na pasta do projeto
$ cd testeV1
  1. Limpar, compilar, testar e empacotar

Neste passo todos as dependências do projeto serão baixadas, então o projeto será compilado, os testes automatizados irão rodar e, em caso de sucesso, o projeto será empacotado e ficará pronto para ser executado localmente.

mvn clean compile test package
  1. Rodando!
mvn spring-boot:run

Será exibido a mensagem final:

2018-12-03 20:46:01.127  INFO 27544 --- [           main] s.samarone.testeV1.TesteV1Application    : Started TesteV1Application in 6.724 seconds (JVM running for 11.065)

Experimentando a API

Junto a aplicação também fica disponível o swagger, que deve estar acessível através de:

http://localhost:8080/swagger-ui.html

Abra seu navegador e aponte para essa url. Através da swagger-ui será possivel conhecer todos os endpoints e também a estrutura deste, assim como testar as chamadas e seus resultados.

Documentação da API

Usando Spring Rest Docs foi gerado um html com a documentação de utilização da api, tal arquivo se encontra na raíz do projeto com nomde de api-guide.html , abra-o em seu ambiente de desenvolvimento usando seu navegador preferido.

Colocando em Produção

O projeto por ter a estrutura de Spring-Boot pode ser implantado na maioria dos provedores do mercado, tais como: AWS, Heroku, OpenShift, Cloud Foundry entre outros. Mas pelo natureza experimental foi decidido disponibilizar o passo a passo de como implementar no Heroku em detalhes e também como uma imagem docker para que possa ser usada em outros provedores que suportem.

Heroku

Existem algumas formas de colocar nosso projeto para rodar na heroku, e uma mais simples é utilizando o próprio git para tal.

  1. Estando dentro da pasta root do projeto e tendo o heroku cli instalado podemos executar:
heroku create -a <SEU_PREFIXO>-teste-v1

Onde <SEU_PREFIXO> deve ser substituído por algum valor de sua preferência. Esse comando cria um novo App em sua conta heroku e também associa um remote chamado heroku a seus repositórios remotos do projeto.

  1. Precisamos agora criar uma instância de banco de dados e associar a essa aplicação dentro da heroku, fazendo:
$ heroku addons:create heroku-postgresql
Creating heroku-postgresql on ⬢ <SEU_PREFIXO>-teste-v1... free
Database has been created and is available
 ! This database is empty. If upgrading, you can transfer
 ! data from another database with pg:copy
Created postgresql-amorphous-90907 as DATABASE_URL

Após a execução com sucesso do comando podemos consultar a url onde o banco de dados está trabalhando:

$ heroku config
=== <SEU_PREFIXO>-teste-v1 Config Vars
DATABASE_URL: postgres://pmupewqnwvgjkq:6a1452d3014c56d938e3a5bf44d9f0f300d1cc805347e5e2f2d3440755ee240d@ec2-107-21-125-209.compute-1.amazonaws.com:5432/dnn93f7mrc72f

Obs: Quando o heroku provisiona uma base para a aplicação, automaticamente é registrado uma variável dentro do ambiente da aplicação: DATABASE_URL, ver uso em application-prd.yml

  1. Devemos configurar agora um variável de ambiente dentro da aplicação para que possa ser usada uma base PostgreSQL: Spring Profile Active
$ heroku config:set SPRING_PROFILES_ACTIVE=prd
Setting SPRING_PROFILES_ACTIVE and restarting ⬢ <SEU_PREFIXO>-teste-v1... done, v5
SPRING_PROFILES_ACTIVE: prd 
  1. Agora devemos enviar o código da nossa aplicação diretamente para o remote heroku configurado anteriormente:
$ git push heroku master

Após alguns minutos a aplicação já está pronta para uso através da URL: https://<SEU_PREFIXO>-teste-v1.herokuapp.com/

  1. Imagem Docker

Também foi gerado uma imagem docker do projeto e disponibilizada no Docker Hub na URL:

https://hub.docker.com/r/samarone/testev1/

Para rodar localmente um container da imagem basta executar o comando:

docker run -p8080:8080 samarone/testev1

Para implantação em produção cada provedor possui um caminho diferente que foge ao escopo desse doc, assim consulte a documentação do provedor escolhido para melhor compreensão do processo.

Construído com

Autor

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published