STRAPI NODEJS CMF | Nunca foi tão fácil criar uma API | Deploy no Heroku 1 de 2 | SW9
Olá Pessoal. Sejam Bem Vindos ao canal e blog SW9 (http://blog.sw9.com.br) ?
Tem muita coisa legal que eu gostaria de compartilhar sobre o STRAPI, portanto, fiquem atentos que os próximos episódios serão dedicados a ele. ?
Todo o conteúdo preparado durante esta imersão, vai fornecer todas as condições para utilizar o STRAPI nos seus projetos, trazendo segurança, facilidade de manutenção, escalabilidade e performance. Então você é o meu convidado a partir de agora para acompanhar esta nova forma de construir APIs.?
#O que vimos no episódio anterior?
No décimo episódio da série, você aprendeu a criar um middleware para gravação de logs de requisição em arquivo texto. Você perdeu este conteúdo ?? Não se preocupe, segue o link para acessá-lo http://blog.sw9.com.br/2019/09/26/strapi-nodejs-cmf-nunca-foi-tao-facil-criar-uma-api-criando-um-middleware-sw9/
#Introdução
Agora que você aprendeu o essencial sobre o framework STRAPI e criou um projeto de API seguindo as minhas instruções, chegou o momento de publicá-lo em produção, usando um serviço de hospedagem e integração com um banco de dados na nuvem (modelo Database as a Service).
Um projeto construído com STRAPI pode ser publicado em provedores de hospedagem tradicionais ou serviços como Heroku, AWS, Azure entre outros. O único pré-requisito é que o provedor seja compatível com NodeJs.
#O que você vai aprender hoje?
Para fecharmos com chave de ouro a série sobre o STRAPI, preparei dois episódios ensinando a publicar o nosso projeto, que construímos ao longo da série, em um ambiente de produção usando o Heroku e o Mongo DB Atlas.
Nesta primeira parte você vai aprender:
1- Fazer o setup do banco de dados a partir do Mongo DB Atlas;
2- Alterar o arquivo database.json com base na string de conexão fornecida pelo Mongo DB Atlas;
3- Alterar o arquivo server.json para o uso das variáveis de ambiente que vão definir o APP HOST e a PORTA onde o STRAPI será publicado e iniciado;
4- Fazer um pequeno ajuste no path do middleware de log (criado no episódio 10) para que funcione corretamente no ambiente Heroku.
#Mongo DB Atlas
Vamos começar o nosso How To de publicação elegendo o banco de dados MongoDB para armazenar os dados do nosso projeto. No sétimo episódio você aprendeu a usar, configurar e se conectar a um banco de dados MongoDB instalado localmente.
O objetivo agora é usar um serviço já preparado para um ambiente de produção e escalável. Estamos falando do Mongo DB Atlas, o serviço do MongoDB na nuvem que opera no modelo Database As a Service.
Este serviço permite a criação de um cluster gratuito para usarmos em nossos projetos.
Você vai aprender a:
1- Criar uma conta no Mongo DB Atlas;
2- Criar o cluster gratuito;
3- Definir um usuário vs permissões de acesso ao banco de dados;
4- Configurar a segurança;
5- Obter a string de conexão para utilizá-la dentro do arquivo de configuração do Strapi.
#Criando uma conta no Mongo DB Atlas
Criar uma conta no serviço é bem simples e rápido. Você deve clicar no link a seguir https://www.mongodb.com/cloud/atlas e localizar o botão [Try Free] no cabeçalho da página.
Ao clicar no botão [Try Free] você será direcionado para uma página onde deve informar um login e senha para criação da sua conta. Com a sua conta criada, você será levado para uma página de planos disponíveis onde deve selecionar o plano gratuito.
#Seu cluster gratuito
Após selecionar o plano gratuito, será carregada uma página chamada [Create a Starter Cluster]. Neste ponto você deve manter todas as configurações já selecionadas por padrão e clicar no botão [Create Cluster].
#Criando um usuário e definindo permissões
Com o nosso cluster gratuito criado, o próximo passo é criar uma conta para acesso ao banco de dados. Esta conta será utilizada pelo STRAPI para se conectar ao banco de dados mongoDB.
Você deve localizar, no menu lateral esquerdo, a opção [Security – Database Access], criar um usuário para acesso ao banco de dados, informando um nome de usuário, uma senha e qual o tipo de permissão você deseja. Para o nosso projeto, vamos escolher o tipo de permissão [leitura e escrita].
#Configurando a segurança
Com o seu usuário de acesso ao banco já criado e as permissões definidas, o próximo passo é configurar a segurança de rede. Definir quais os IPs serão liberados para uma conexão com o nosso Cluster mongoDB.
Você deve localizar, no menu lateral esquerdo, a opção [Security -> Network Access], e adicionar os IPs que estão autorizados a se conectarem com o serviço. Para o nosso projeto, vamos deixar a opção [allow access from anywhere] ativada.
Apesar de marcarmos esta opção, por questões de segurança, eu recomendo que você descubra qual o IP do serviço que está hospedando o seu projeto STRAPI, e restrinja acesso apenas a ele.
#Configurando os dados de conexão no STRAPI
Estamos quase chegando ao final do setup ?. O próximo passo é obtermos a configuração de conexão (connection string) e incluí-la no arquivo database.json localizado em /config/environments/production/.
Para localizar os dados de conexão você deve acessar a opção [Atlas – Clusters] e clicar no botão [Connect]. Na sequência você deve clicar na opção [Connect your application] e selecionar a versão correta do driver node.js, que deve ser [2.2.12 or later].
O último passo é copiar os dados de conexão (connection string) e incluir no arquivo de configuração database.json.
Você vai ter contato com o arquivo completo durante a aula em vídeo e também baixando o projeto da minha área de downloads.
#Ajustando as configurações do STRAPI para produção
Depois de finalizarmos todos os pontos relacionados com o banco de dados, o próximo item a verificar é o arquivo server.json, que pode ser localizado no caminho do projeto /config/environments/production/.
Mas o que devo alterar neste arquivo? Recomenda-se que as chaves [port] e [host] sejam configuradas para o uso de variáveis de ambiente, trazendo uma maior flexibilidade caso você precise publicar o seu projeto em outro provedor.
As linhas relacionadas com as chaves [port] e [host] devem ficar assim:
“host”: “${process.env.APP_HOST || ‘127.0.0.1’}”,
“port”: “${process.env.NODE_PORT || 1337}”,
Importante: a documentação do STRAPI sugere que a variável de ambiente relacionada com a porta seja [NODE_PORT], porém para publicação no Heroku devemos trocar [NODE_PORT] por [PORT]. Neste caso, as linhas devem ficar:
“host”: “${process.env.APP_HOST || ‘127.0.0.1’}”,
“port”: “${process.env.PORT || 1337}”,
#Middleware de Log – Ajuste de Path
Outro pequeno ajuste que precisamos fazer está relacionado com o middleware de log que criamos no décimo episódio. Como o Heroku usa Linux, devemos alterar o path de geração do log trocando as barras de ‘\’ para ‘/’.
Se isso não for feito, o Heroku para gerar um erro no momento que o projeto for iniciado.
#Fazendo o build do projeto
Para encerrar, vamos fazer um build local para validar se todas as alterações realizadas no projeto estão OK.
Primeiro devemos configurar a variável de ambiente [NODE_ENV] para produção. Configurando desta forma, você está dizendo ao STRAPI para fazer o build do projeto usando as configurações existentes no diretório /config/environments/production/.
Na sequência deve digitar o comando Strapi Build no terminal.
Em resumo a ordem dos comandos vai ficar assim:
> SET NODE_ENV=production
> strapi build
#Hora de assistir ao vídeo
Chegou o momento de arregaçar as mangas e colocar a mão na massa. ?? ??♂️ ?♀️
[Conclusão]
No episódio de hoje [STRAPI NODEJS CMF | Nunca foi tão fácil criar uma API | Deploy no Heroku 1 de 2 | SW9], você aprendeu a fazer o setup do MongoDB Atlas, configurar o STRAPI para utilizá-lo, e alterar a configuração do APP Host e Port para usar variáveis de ambiente. ?
Está disponível na área de downloads o projeto que construímos hoje. Para acessá-lo basta clicar no link a seguir http://blog.sw9.com.br/acesso-area-de-downloads/, informar um e-mail válido e automaticamente receberá as instruções para acesso.
Dentro da minha área de Downloads, procure pela pasta /STRAPI. O resto é com vocês
Bom, por hoje é só. Aproveitem o vídeo e bons estudos. Fiquem antenados, que em breve teremos mais novidades.
Espero que gostem deste vídeo. Aproveito para pedir a participação de vocês no canal e blog, curtindo, compartilhando, dando sua opinião e se inscrevendo no canal e blog para receber as novidades em primeira mão.
Fiquem com Deus e até o próximo vídeo.
[Links úteis]
Curso Relacionado: [Aprenda HTML 5 e CSS 3 e Comece a Criar Seus Próprios Sites] – https://goo.gl/QsLPph
Link do vídeo: https://youtu.be/S9VnEL7jcgw
Playlist Ferramentas de Teste de API: https://www.youtube.com/watch?v=9GAl1nlNcbo&list=PLtluGZbI5ESiFrDDnKmwJNdrKZKI-hECj
PlayList Mega Série HTML5: https://www.youtube.com/watch?v=D-XN-miEwP0&list=PLtluGZbI5ESj8XWTJcJmrVW6Q_tCi7uR8
Área de Downloads: http://blog.sw9.com.br/acesso-area-de-downloads/
Meu Blog: http://blog.sw9.com.br
Meu GitHub: https://sw9brl.github.io/MyGitHubPage
Canal youtube: https://youtube.com/+sw9brl
✔ Clique em gostei ✔ Compartilhe ✔ Inscreva-se
Que tal me pagar um café :-)
Uma pequena quantidade de café foi consumida durante a produção de um post + vídeo. Se puder, contribua adicionando mais combustível para que eu tenha condições de seguir em frente.
Brincadeiras à parte, o valor selecionado é multiplicado por 2 (x2) que representa a multiplicação de minha dedicação a cada contribuição que recebo.
Deixe um comentário