Projeto Final - S17 e 18

🎵 oooooh aonde nós chegooou! valeu a pena esperaaaar! 🎵

tais araujo comemorando

Depois de tanta coisa, finalmente chegamos nos momentos finais, ansiedade tá a mil, né minha filha?!

Mas ainda precisamos internalizar algumas coisinhas pra aí sim ter nosso projetinho final 100% dentro dos conformes.

Bora descobrir quais sao essas coisinhas?

Vale lembrar que o material aqui do readme é um complemento do material do nosso slide

* Documentaçao & Swagger

Bora documentar?

nazare entrando em colapso

Segue esse passo a passo q eh sucesso:

  1. Abro meu projeto

  2. Abro o terminal na raiz do projeto

  3. Executo os seguintes comandos:

     $ npm i swagger-autogen swagger-ui-express (isso fará a instalacao do swagger autogen no nosso projeto)
     $ touch swagger.js (isso fará com que um arquivo swagger seja criado no nosso projeto)
     $ mkdir swagger/  (isso fará com que uma pasta swagger seja criada no nosso projeto)
  1. Depois da criação da pasta, vamos no arquivo swagger.js e adicionamos esse pedaço de código:
     const swaggerAutogen = require('swagger-autogen')();
     const outputFile = './swagger/swagger_output.json';
     const endpointsFiles = ['./src/app.js'];
     swaggerAutogen(outputFile, endpointsFiles);
  1. Iremos lá no nosso package.json e faremos a seguinte alteraçao:
  "script”: {
   "start": "nodemon server.js",
   "swagger-autogen": "node swagger.js",
 }
  1. Em seguida digitaremos o seguinte comando la no terminal:

npm run swagger-autogen

Note que foi criado um arquivo chamado swagger_output.json dentro da nossa pasta swagger.

Parabéns, vc ja tem sua documentação!!!!

Bora deixar nossa documentaçao mais visual?

  1. Vamos lá no nosso app.js e adicionaremos o seguinte código:

    const swaggerFile = require('../swagger/swagger_output.json');

    app.use('/minha-rota-de-documentacao', swaggerUi.serve, swaggerUi.setup(swaggerFile));
  1. Em seguida, inicializaremos nosso projeto, é so digitar no terminal:

npm start

  1. Feito isso, acessaremos a nossa rota

localhost:3000/minha-rota-de-documentacao

PS: Estou usando a porta 3000, caso vc esteja usando alguma diferente, use ela, beleza?

* Deploy & Heroku

Bora deployar?

vamo faze oq

  1. Iremos conectar nosso repositório com o heroku, para isso precisaremos criar uma conta no (heroku)[https://www.heroku.com], e criar o primeiro app clicando no botão "new".

  2. Coloque o nome do seu projeto e escolha a região em que o seu projeto ficará, pode escolher os EUA ou Europa, não faz diferença nesse caso.
    imagem

  3. Na area de deploy conecte-se à sua conta no Github como método de deployment.

  4. Em seguida, encontre o github do projeto que você deseja dar deploy, e entao escolha qual branch deseja dar deploy. imagem

Agora bora la no projeto de novoooo, ta bom?!

Após criar sua conta no Heroku e conectar seu repositório com o Heroku, algumas mudanças devem ser feitas no seu projeto.

Primeiramente, precisamos criar um arquivo chamado Procfile.

O heroku espera que esse arquivo esteja na raiz do seu projeto, onde fica o server.js, package.json e package-lock.json.
Então, vamos abrir o terminal na raiz do nosso projeto e digitar o seguinte comando:

 `touch Procfile`

O Procfile é que vai guiar os primeiros comandos para rodar seu projeto.
img

Dentro desse arquivo vamos digitar:

web: npm install && node server.js

img

Conectando o Cluster com o projeto no Heroku

Feito isso, voltaremos para o app do Heroku e iremos na aba de Settings. Nós vamos adicionar as variáveis de ambiente necessárias para o projeto. Em Settings vamos para a área de Config Vars

Vamos criar as variáveis de ambiente do projeto, em Config Vars clicamos em Reveal Config Vars. Teremos então o campo de KEY (chave) e o campo de VALUE (valor), nele colocaremos a chave e o valor criado por nós no arquivo de configuração do banco de dados do seu projeto a MONGODB_URI
alt
Depois de adicionar o nome da variável e o valor clicamos em add Se você tem outras variáveis de ambiente no seu .env, como o SECRET, PORT ou qualquer outra que seu projeto dependa pra funcionar você também deve fazer esse processo de adicionar nas config vars as chaves e os valores correspondentes.

Fez todos os passos? Seu código ta sem erro? Vamo deployar pra ver se ta tudo ok?

Primeiro, você vai precisar subir as alterações feitas no seu projeto:

      git add .
     (pra adicionar os arquivos alterados)
      git commit -m 'meu commit'
     (pra commitar os arquivos alterados)
      git push origin minha-branch
     (pra subir pro repositorio os arquivos alterados)

Depois disso, voltaremos no app do Heroku e acessaremos a aba de Deploy. Seguiremos para Manual Deploy(fica la no final da pagina), selecionaremos a branch e entao clicaremos em Deploy Branch
alt

Em seguida, um terminalzinho aparecerá para você.
alt
Mas logo ele vai ficar todo verdinho
alt
e você pode clicar em View, para abrir sua linda api.

Deu certo? Parabéns! Nossa rota está no ar! 🎊