Blog SW9

Desenvolvimento Web e Híbrido na prática.
Tome um café, concentre-se, codifique. (งツ)ว

STRAPI NODEJS CMF | Nunca foi tão fácil criar uma API | Deploy no Heroku 1 de 2 | SW9

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. 🏃🏿 🏃🏻‍♂️ 🏃‍♀️

Aprenda HTML 5 e CSS 3

Comece a criar Sites Com o Melhor do HTML 5 e CSS 3
Curso Relacionado

[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

Post: http://blog.sw9.com.br/2019/10/15/strapi-nodejs-cmf-nunca-foi-tao-facil-criar-uma-api-deploy-heroku-1-sw9

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

Tópicos Relacionados

Deixe um comentário

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Paulo Eduardo
Geek desde criança, sempre me interessei por games, filmes e tecnologia. Sou graduado em engenharia da computação pela PUC Campinas. Possuo mais de 15 anos de experiência em desenvolvimento, com foco maior em desenvolvimento web, gestão de times e mais recentemente desenvolvimento mobile utilizando HTML e Javascript.

Termos como #backend, #frontend e #fullstack fazem parte do meu dia a dia.

Não deixe de acompanhar meu blog, canal youtube e meus produtos digitais.

Divirta-se e bons estudos. :-)
Paulo Eduardo on sabyoutubePaulo Eduardo on sabinstagramPaulo Eduardo on sabgithubPaulo Eduardo on sabfacebook
✌(◕‿-)✌ Tempo Limitado - Tenha acesso a nossa área de DownloadsClique Aqui - É Grátis
How to whitelist website on AdBlocker?