Lab 8.1: Estrutura do projeto e autenticação
Para utilizar os endpoints de API disponíveis na BotCity, é necessário fazer a autenticação na plataforma e fazer as requisições de acordo com os endpoints disponíveis. Abaixo, iremos encontrar o passo-a-passo para realizar a autenticação corretamente.
Setup
Para utilizar os endpoints de API da BotCity, é necessário obter o Token, que será passado nos headers das requisições de API, e irá permitir que utilizemos os endpoints existentes. Posteriormente indicaremos como obter o token e montar o header para as requisições.
Também iremos utilizar as bibliotecas Python requests e plotly para realizar as requisições e gerar os gráficos com os dados obtidos pelas chamadas de API, e também a biblioteca streamlit, para exibir os gráficos gerados numa interface web.
Por fim, crie um arquivo main.py no seu diretório de projetos, pois será fundamental para implementarmos o código e visualizar os gráficos.
Instalando as dependências do projeto
Para instalar as dependências do Projeto, o arquivo de requirements.txt deve conter a seguinte biblioteca:
streamlit
plotly
Crie um ambiente virtual, ative-o e instale as dependências do projeto com o comando pip install -r requirements.txt
Nota
Para criar e ativar um ambiente virtual, visite o lab Lab 1.3: Desenvolvendo automação Desktop - Criando ambiente isolado.
Realizando os imports das dependências no código:
Iremos apontar as dependências que iremos utilizar em nosso projeto, como indicado no código Python abaixo:
import requests
import streamlit as st
import requests
import plotly.graph_objects as go
from collections import Counter
Por que utilizar as dependências citadas acima?
requests:
- Esta biblioteca é essencial para fazer requisições HTTP. No seu código, ela é usada para "pedir" dados da sua API, seja para os warnings (/api/v2/alerts) ou para os erros (/api/v2/error). É como o mensageiro que vai buscar a informação no servidor.
plotly.graph_objects as go
- Plotly é uma biblioteca de visualização de dados poderosa que permite criar gráficos interativos e dashboards. O graph_objects (go) especificamente é usado para construir gráficos de forma mais granular, definindo barras, linhas, etc. No seu código, ele é usado para criar os gráficos de barras que mostram a quantidade de erros e warnings por automação.
from collections import Counter
- Counter é uma subclasse de dicionário que facilita a contagem de objetos "hashable". No seu caso, ela é usada para contar quantas vezes cada botId (ID da automação) aparece nas listas de warnings e erros. Isso simplifica muito o processo de agregar os dados por automação.
Analogia: Pense no Counter como um contador de cédulas de banco. Você joga um monte de notas misturadas, e ele rapidamente te diz quantas notas de 10, quantas de 20, quantas de 50 você tem.
streamlit as st
- streamlit é uma biblioteca Python utilizada para criar e exibir gráficos em uma interface web de forma descomplicada. Com essa dependência, conseguiremos criar uma página web com um layout simples e elegante, exibindo os gráficos com as informações que iremos obter com as chamadas aos endpoints de api da BotCity.
Com as dependências devidamente colocadas no código, iremos prosseguir com as configurações para realizar as requisições nos endpoints de API.
Configurando a API:
Como obter o Token
Para obter o Token, será necessário realizar a requisição do tipo POST, passando os valores de Login e Key no corpo da requisição. Para compor a URL que iremos fazer a requisição inicial, é necessário obter o valor de Workspace.
Aviso
Para obter os valores de Workspace, Login e Key, basta acessar a seção "Amb. de desenvolvimento" no Orquestrador, como indicado na Documentação.
Para realizar a obtenção do Token, iremos criar uma função chama login, na qual faz uma chamada do tipo POST no endpoint de login. A chamada do tipo POST é utilizada quando queremos enviar dados ao servidor que estamos nos comunicando.
No próximo Lab, veja o passo-a-passo para implementarmos as funções de login e exibição de gráficos na página web com Streamlit.