EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Como usar a Atlas Data API com o Google Apps Script

John Page9 min read • Published Dec 01, 2021 • Updated Jun 12, 2023
AtlasData APIJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
Este tutorial discute a versão de visualização do Atlas Data API, agora disponível ao público com mais recursos e funcionalidades. Saiba mais sobre a versão GA aqui.
O MongoDB Atlas Data API é uma API baseada em HTTPS que nos permite ler e escrever dados no Atlas onde uma biblioteca de drivers do MongoDB não está disponível ou não é desejável. Neste artigo, veremos como um analista de negócios ou outro usuário de back office, que geralmente não é um desenvolvedor profissional, pode acessar dados e registrá-los no Atlas. A Atlas Data API pode ser facilmente utilizada por usuários que não conseguem criar ou configurar serviços de back-end, que simplesmente desejam trabalhar com dados em ferramentas que conhecem, como o Google Planilhas ou o Excel.
O Google Office acessa dados externos usando o Google Apps Script, uma plataforma JavaScript baseada em nuvem que nos permite integrar e automatizar tarefas nos produtos do Google. Usaremos o Google Apps Script para chamar o Atlas Data API.

Pré-requisitos

Antes de começarmos, precisaremos de uma conta do Google e da capacidade de criar Planilhas Google. Também precisaremos de um Atlas para o qual habilitamos o Atlas Data API, além de nosso URL e API. Você pode aprender como obtê-los neste artigo ou neste vídeo, se ainda não os tiver.
Um uso comum do Atlas com o Google Planilhas pode ser procurar manualmente alguns dados da empresa ou produzir uma exportação para terceiros. Para testar isso, primeiro precisamos ter alguns dados de negócios no MongoDB Atlas. Isso pode ser adicionado selecionando os três pontos ao lado do nome do cluster e escolhendo "Carregar conjunto de dados de amostra", ou seguindo as instruções aqui.

Criando um script do Google Apps a partir de uma planilha do Google

Nosso próximo passo é criar uma nova planilha do Google. Podemos fazer isso acessando https://docs.google.com/spreadsheets/ e selecionando uma nova planilha em branco ou, se estiver usando o Chrome, acessando o URL https://sheets.new . Acabamos vendo uma planilha como esta. Substitua o nome "Planilha sem título" por "Atlas Data API Demo".
Vamos criar um front-end simples que nos permitirá verificar o certificado de inspeção comercial e o histórico de uma propriedade. Obteremos isso da collection inspeções no banco de dadossample_training. O primeiro passo é adicionar alguns rótulos em nossa planilha conforme mostrado abaixo. Não se preocupe se sua formatação não for exatamente a mesma. A célula B1 é onde inseriremos o nome que procuramos. Por enquanto, digite "Americano".
Agora precisamos adicionar código que consulta o Atlas e recupera os dados. Para fazer isso, selecione Extensões -> Script de aplicativos na barra de menu. (Se você estiver usando o Google for Business, ele pode estar em Ferramentas->Editor de script.)
Uma nova guia será aberta com o ambiente de desenvolvimento do Apps Script e uma função vazia chamada myFunction(). Nesta aba, podemos escrever código JavaScript para interagir com nossa planilha, o MongoDB Atlas e a maioria das outras partes da infraestrutura do Google.
Clique no nome 'Projeto sem título", Digite "Meu script de API de dados" no pop-up e clique em Renomear.
Antes de nos conectarmos ao Atlas, primeiro escreveremos e testaremos um código muito básico que identifica nossa planilha aberta e recupera o conteúdo da célula B1, onde inserimos o que queremos pesquisar. Substitua todo o código pelo código abaixo.

Concedendo permissões para scripts do Google Apps

Agora precisamos conceder permissão ao script para acessar nossa planilha. Embora tenhamos acabado de criar este script, o Google exige permissão explícita para confiar em scripts que acessem documentos ou serviços.
Verifique se o script foi salvo digitando Control/Command + S, depois clique em " Executar " na barra de ferramentas e em " Revisar Permissões " no pop-up " Autorização necessária ". Selecione o nome da conta do Google com a qual você pretende executar isso. Em seguida, você receberá um aviso de que " O Google não verificou este aplicativo ".
Esse aviso é destinado a alguém que publica uma planilha que recebeu de outra pessoa, e não de nós, como autores. Para continuar, clique em Avançado e depois em " Ir para My Data API Script (inseguro) " . Isso não é inseguro para você como autor, mas qualquer outra pessoa que acesse esta planilha deve estar ciente de que ela pode acessar qualquer uma de suas planilhas do Google.
Por fim, clique em " Permitir " quando perguntado se o aplicativo pode " Ver, editar, criar e excluir todas as suas planilhas do Google Sheets. "
Como alteramos nosso script e exigimos permissões adicionais, precisaremos passar por esse processo de aprovação novamente.

Adicionar um botão Iniciar para um script do Google Apps em uma planilha


Agora precisamos adicionar um botão na planilha para chamar essa função quando quisermos usá-la. O Planilhas Google não tem botões nativos para iniciar scripts, mas há um truque para emular um.
Retorne à guia que mostra a planilha, ignore o pop-up, se houver, e use Insert->Drawing. Adicione uma caixa de texto clicando no quadrado com a letra T no meio e arrastando para criar uma pequena caixa. Clique duas vezes nela para definir o texto como "Search" e altere a cor de fundo para um verde MongoDB agradável. Em seguida, clique em "Save and Close."
De volta à planilha, arraste-a para baixo do nome "Pesquisar:" no canto superior esquerdo. Você pode movê-lo e redimensioná-lo para que se ajuste bem.
Por fim, clique no botão verde e, em seguida, nos três pontos no canto superior direito. Escolha "Assign a Script" e, no pop-up, digite lookupInspection. Embora essa pareça uma maneira bastante desajeitada de vincular um script a um botão, é a única coisa que o Google Sheets nos oferece.
Agora clique no botão verde que você criou, ele deve abrir uma caixa de diálogo que diz 'EUA'. Agora vinculamos nosso script ao botão com sucesso. Você altera o valor na célula B1 para "Pizza" e executa o script novamente verificando se diz "Pizza" desta vez. Observe que o valor de B1 não muda até que você clique em outra célula.
Se, depois de vincular um botão a um script, você precisar selecionar o botão para mover, dimensionar ou formatar, poderá fazer isso com Command/Control+Click.

Recuperando dados do MongoDB Atlas usando o Google Apps Scripts


Agora que temos um botão para iniciar nosso script, podemos preencher o restante do código para chamar a API de dados e encontrar os resultados correspondentes.
Na barra de menu da planilha, selecione novamente Extensions->Apps Script (ou Ferramentas->Editor de script). Agora altere o código para corresponder ao código mostrado abaixo. Certifique-se de definir o endpoint na primeira linha como o endpoint da URL na GUI do Atlas. A parte que diz "amzuu" será diferente para você.
Agora podemos testar isso clicando em "Run " na barra de ferramentas. Como agora solicitamos uma permissão adicional (a capacidade de se conectar a um serviço web externo), mais uma vez teremos que aprovar permissões para nossa conta seguindo o processo acima.
Depois de conceder permissão, o script será executadoLog um início bem-sucedido, mas não parecerá continuar. Isso ocorre porque ele está aguardando a entrada. Voltando à guia com a planilha, podemos ver que agora ela está solicitando a inserção de nossa chave da Atlas Data API. Se colarmos nossa chave da Atlas Data API na caixa, veremos ela concluir a pesquisa.
Agora podemos pesquisar os nomes da empresa digitando parte do nome em B1 e clicando no botão Pesquisar. Esta pesquisa utiliza uma expressão regular não indexada. Para uso em produção, você deve usar pesquisasindexadas do MongoDB ou, para pesquisa de texto livre, Atlas Search, mas isso está fora do escopo deste artigo.

Proteção de chaves secretas de API em scripts do Google Apps

As chaves API do Atlas dão ao portador acesso de leitura e escrita a todos os bancos de dados no cluster, portanto, é importante gerenciar a chave API com cuidado.
Em vez de simplesmente codificar a chave API no script, onde ela pode ser vista por outra pessoa com acesso à planilha, verificamos se ela está no armazenamento de propriedades pessoais do usuário (um valor-chave do lado do servidor acessível apenas pelo Google usuário). Caso contrário, nós o solicitamos e o armazenamos. Isso tudo está encapsulado na função getAPIKey().
Se você inserir a chave incorretamente - ou precisar alterar a chave armazenada. Altere resetKey para true, execute o script e digite a nova chave e, em seguida, altere-a novamente para false.

Escrevendo para o MongoDB Atlas a partir de scripts do Google Apps

Criamos essa interface de usuário simples, baseada em planilhas, e podemos adaptá-la para realizar quaisquer consultas ou agregações durante a leitura, alterando a carga útil. Também podemos gravar no banco de dados usando a API de dados. Para manter a planilha simples, adicionaremos um registro de uso para nossa nova interface de pesquisa, mostrando o que foi consultado e quando. Lembre-se de alterar "amzuu" no valor do endpoint na parte superior para o endpoint de seu próprio projeto. Adicione isso ao final do código, mantendo as funções existentes.

Usando tipos de dados explícitos em JSON com MongoDB EJSON


Quando adicionamos os dados a isso, definimos o campo de data como um tipo de data no Atlas, em vez de um tipo de string com uma string ISO da data. Fazemos isso usando [EJSON](https://docs.mongodb.com/manual/reference/mongodb-extended-json/). sintaxe.
EJSON, ou Extended JSON, é usado para contornar a limitação do JSON simples de não ser capaz de diferenciar tipos de dados. JSON não consegue diferenciar uma data de uma string nem especificar se um número é um valor duplo, 64 bit inteiro ou 128 bit bigdecimal. Os dados do MongoDB são dados digitados e, ao trabalhar com outras linguagens e códigos, além da MongoDB Atlas Data API, é importante estar ciente disso, especialmente ao adicionar ou atualizar dados.
Neste exemplo, em vez de usar { date : (new Date()).toISOString() }, que armazenaria a data como um valor de string, usamos o tipo de data nativo muito mais eficiente e flexível no banco de dados, especificando o valor usando EJSON. O formulário EJSON é { date : { $date : { $numberLong: <milliseconds since 1-1-1970> }}}.

Conectando nossa função de registro de queries

Devemos agora modificar nosso código para registrar cada query realizada adicionando a seguinte linha no lugar correto dentro da funçãolookupInspection.
Se clicarmos no botão Pesquisar agora, não apenas obteremos os resultados da pesquisa, mas a verificação do Atlas Search nos mostra um registro do que pesquisamos, a que horas e qual usuário o executou.

Conclusão

Você pode acessar a ficha preenchida aqui. Isso é somente leitura, então você precisará criar uma cópia usando o menu arquivo para executar o script.
Chamar a Data API do Google Apps Script é simples. A chamada HTTPS é apenas algumas linhas de código. Proteger a chave da API e especificar o tipo de dados correto ao inserir ou atualizar dados é um pouco mais complexo, mas espero que esta postagem forneça uma boa indicação de como fazer isso.
Em caso de dúvidas, acesse nosso website da comunidade de desenvolvedores, no qual os engenheiros do MongoDB e a MongoDB Community ajudarão você a colocar em prática sua próxima grande ideia com o MongoDB.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Melhore os resultados de pesquisa do seu aplicativo com o ajuste automático


Aug 14, 2024 | 5 min read
exemplo de código

Comece a usar o MongoDB Atlas e o AWS CloudFormation


Jan 23, 2024 | 3 min read
Tutorial

Construir um elemento de formulário de preenchimento automático com Atlas Search e JavaScript


Sep 09, 2024 | 8 min read
Tutorial

Building a Knowledge Base and Visualization Graphs for RAG With MongoDB


Sep 02, 2024 | 12 min read
Sumário