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 | Logging | SW9

STRAPI NODEJS CMF | Nunca foi tão fácil criar uma API | Logging | 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 oitavo episódio da série, você aprendeu a criar uma API via linha de comando usando o STRAPI CLI (Command Line Interface). Você perdeu este conteúdo ?? Não se preocupe, segue o link para acessá-lo http://blog.sw9.com.br/2019/09/12/strapi-nodejs-cmf-nunca-foi-tao-facil-criar-uma-api-criando-via-cli-sw9/

#O que você vai aprender hoje?

Neste nono episódio você vai ter contato com a estrutura de Log que já vem integrada ao framework STRAPI, entendendo como funciona, a sua configuração e o seu comportamento. Ao final do episódio vamos customizar um controlador para incluir linhas de log e observar a exibição via terminal.

#Introdução

Estamos caminhando bem e quase chegando ao final da série sobre STRAPI. Nos últimos episódios vimos como fazer conexão com o banco de dados MongoDB e uma forma de criar APIs via linha de comando usando o STRAPI CLI. Agora que já temos uma API criada e integrada com o banco de dados MongoDB, chegou o momento de falarmos um pouco sobre Log.

Não adianta criarmos uma API e deixarmos de lado a implantação de um log. Criando uma estrutura de log, será possível acompanhar o comportamento da aplicação e identificarmos de forma pró-ativa situações que possam comprometer o seu correto funcionamento.

Para nossa sorte, o STRAPI já possui uma estrutura de Log integrada, que usa como base o Pino (Super Fast, all natural Json Logger for Node.js). Esta estrutura possui uma excelente performance, e não vai deixar sua(s) API(s) lenta(s).

#Como podemos usar?

Existem duas formas para criar linhas de log no código. Você pode usar uma variável global chamada strapi.log, ou o próprio contexto de requisição ctx.log, caso ele esteja ativado na configuração (a configuração do log você verá mais adiante).

Sintaxe com strapi.log: strapi.log.info(#conteúdo que será apresentado no log#)

Sintaxe com ctx.log: ctx.log.info(#conteúdo que será apresentado no log#)

Observe que estou usando o nível de log do tipo [info], mas existem outras opções conforme abaixo:

#1 – strapi.log.fatal = ctx.log.fatal

#2- strapi.log.warn = ctx.log.warn

#3- strapi.log.error = ctx.log.error

#4- strapi.log.debug = ctx.log.debug

#Fazendo a configuração

Configurar o log é uma tarefa bem fácil. Toda a configuração pode ser feita dentro do arquivo request.json, que fica localizado dentro da pasta environment/*/.

Resumindo, para cada ambiente, seja ele development, staging ou production, existe um arquivo request.json disponível para configuração. Esta estrutura nos traz flexibilidade, permitindo fazer configurações diferentes de log para cada tipo de ambiente.

Abrindo o arquivo request.json, você deve localizar a chave “logger” conforme abaixo:

"logger": {
    "level": "debug",
    "exposeInContext": true,
    "requests": true
  },

Na verdade, o logger é um middleware que já vem incorporado de forma nativa no STRAPI, e a partir dele é possível definir as seguintes configurações:

level = permite definir o nível do log (fatal, error, warn, info, debug, trace).

exposeInContext = ativa ou não o acesso às chamadas de log via contexto

requests = ativa ou não a característica de ‘logar’ as requisições http

#Logando as requisições

Antes de observarmos o log em ação, vamos aplicar uma configuração específica de log para o ambiente de produção (environment/production/request.json) e definir a variável de ambiente NODE_ENV=production.

O próximo passo é entrar no diretório raíz do projeto e executar o comando strapi build. Ao finalizar o build, você deve executar o comando strapi start e aguardar o projeto iniciar.

Importante: Quando usamos a variável de ambiente NODE_ENV, o STRAPI vai usar o valor atribuído nesta variável para definir se o build será do tipo development, production ou staging.

#Observando o log em ação

Agora chegou o momento de observar o log em ação. Com o projeto no ar e rodando, qualquer ação que fazemos no painel admin ou qualquer chamada que fazemos nos endpoints de nossa API geram um log, que é exibido imediatamente no terminal (prompt de comando).

O próximo passo é incluirmos chamadas de log dentro do código da API, para observarmos o comportamento.

#Adicionando linhas de log no código

Agora que você sabe como funciona e configura um log, vamos incluir algumas chamadas de log dentro do código de nossa API. Para este teste vamos customizar o controlador Tarefa.js

O objetivo da customização é incluir uma nova ação (action), e dentro dela fazer algumas chamadas ao log usando a variável glogal strapi.log.

Não esqueça: ao finalizar a customização, você deve incluir esta nova rota no arquivo de rotas (routes.json), e também acessar o painel admin do strapi para dar acesso a ela.

Vamos agora fazer um novo build (strapi build), na sequência strapi start e aguardar o projeto iniciar.

O próximo passo é acessar o endpoint recém-criado e observar as novas entradas de log sendo exibidas no terminal. ???

#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 | Logging | SW9], você entendeu como funciona a estrutura de log integrada ao STRAPI, aprendeu a configurá-lo conforme sua necessidade e adicionar linhas de log no código para observar o comportamento. ?

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/09/24/strapi-nodejs-cmf-nunca-foi-tao-facil-criar-uma-api-logging-sw9

Link do vídeo: https://youtu.be/Ni6E4lqlt-s

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?