Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Chamando a API de administração do MongoDB Atlas: como fazer isso usando Node, Python e Ruby

DJ Walker, Stanimira Vlaeva4 min read • Published Nov 30, 2021 • Updated Jun 18, 2024
Node.jsAtlasRubyPython
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
O verdadeiro poder de um serviço totalmente gerenciado e hospedado na nuvem como o MongoDB Atlas é que você pode criar automaticamente arquiteturas de sistema de banco de dados totalmente novas, usando a API de serviços. Acesso à API de administração do MongoDB Atlas é relativamente simples e, uma vez desbloqueado, abre uma grande oportunidade para integrar e automatizar o gerenciamento de sistemas de banco de dados, da criação à exclusão. A API em si é uma REST API. Há controle de acesso baseado em função e você pode ter credenciais específicas do usuário ou do aplicativo para acessá-lo.
No entanto, há um pequeno detalhe que pode atrapalhar as pessoas. As credenciais precisam ser transmitidas usando o mecanismo de autenticação digest, e não a autenticação básica mais comum ou o uso de um token emitido. A autenticação Digest, em sua forma mais simples, aguarda uma respostaHTTP401 Unauthorizeddo endpoint da Web. Essa resposta vem com dados e o cliente envia uma forma criptografada do nome de usuário e da senha como um resumo e o servidor trabalha com isso.
E é por isso que estamos aqui hoje: para mostrar como fazer isso com o mínimo de confusão em Python, Node e Ruby. Em cada exemplo, tentaremos acessar o URL base da API de administração do Atlas, que retorna um documento JSON sobre o nome, a construção e outros detalhes dos aplicativos subjacentes. Você pode encontrar todas as amostras de código no repositório dedicado do Github.

Configurar

Para usar a API de administração do Atlas, você precisa de uma conta do MongoDB Atlas! Se você ainda não tiver um, siga o guiaIniciar com Atlas para criar sua conta e primeiro cluster.
O próximo requisito é a chave de API da organização. Você pode configurá-lo em duas etapas:
Crie uma chave de API na sua organização Atlas. Verifique se a chave tem a permissão do Proprietário da Organização . Adicione seu endereço IP à lista de acesso da API para a chave de API.
Em seguida, abra um novo terminal e exporte as seguintes variáveis de ambiente, em que ATLAS_USER é sua chave pública e ATLAS_USER_KEY é sua chave privada.
1export ATLAS_USER=<public_key>
2export ATLAS_USER_KEY=<private_key>
Está tudo configurado! Vamos ver como podemos usar a API de administração com Python, Node e Ruby.

Python

Começamos com o exemplo mais simples e independente: Python.
Na versão Python, nos apoiamos na bibliotecarequests para a maior parte do trabalho pesado. Podemos instalá-lo com pip:
1python -m pip install requests
A implementação da autenticação digest em si é a seguinte:
1import os
2import requests
3from requests.auth import HTTPDigestAuth
4import pprint
5
6base_url = "https://cloud.mongodb.com/api/atlas/v2/"
7auth = HTTPDigestAuth(
8 os.environ["ATLAS_USER"],
9 os.environ["ATLAS_USER_KEY"]
10)
11
12headers = {
13 'Accept': 'application/vnd.atlas.2023-01-01+json' # update date to desired API version
14}
15
16response = requests.get(base_url, auth = auth, headers=headers)
17pprint.pprint(response.json())
Além de importar requests, também trazimos em HTTPDigestAuthdo móduloauth das solicitações para lidar com a autenticação digest. A importaçãoos está lá apenas para que possamos obter as variáveis de ambiente ATLAS_USER e ATLAS_USER_KEY como credenciais. Também adicionamos um cabeçalho para definir a versão da API de administração do Atlas que queremos. A importaçãopprinté apenas para formatar nossos resultados.
A parte crítica é a adição de auth = HTTPDigestAuth(...) à chamadarequests.get(). Isso instala o código necessário para responder ao servidor quando ele solicitar o resumo.
Se agora executarmos este programa...
Captura de tela do emulador de terminal após a execução do script de solicitação para Python. A mensagem impressa mostra que a solicitação foi bem-sucedida.
…temos nossa resposta da API.

Node.js

Para o Node.js, aproveitaremos o pacoteurllibque oferece suporte à autenticação digest.
1npm install urllib
O código para a requisição HTTP do Node.js é o seguinte:
1const urllib = require('urllib');
2const util = require('util');
3
4const baseUrl = 'https://cloud.mongodb.com/api/atlas/v2/';
5const { ATLAS_USER, ATLAS_USER_KEY } = process.env;
6const options = {
7 digestAuth: `${ATLAS_USER}:${ATLAS_USER_KEY}`,
8 headers: {
9 'Accept': 'application/vnd.atlas.2023-01-01+json' // update date to desired API version
10 }
11};
12
13urllib.request(baseUrl, options)
14 .then(({ data, res }) => {
15 if (res.statusCode !== 200) {
16 console.error(`Unexpected Status: ${res.statusCode}: ${res.statusText}`);
17 } else {
18 const jsonRes = JSON.parse(data);
19 console.log(util.inspect(jsonRes, { depth: null, colors: true }));
20 }
21 })
22 .catch(error => console.error('Error occurred:', error));
Retirando de cima... primeiro exigimos e importamos o pacote urllib . Em seguida, extraímos as variáveisATLAS_USER e ATLAS_USER_KEY do ambiente do processo e as usamos para construir a chave de autenticação. Em seguida, adicionamos um cabeçalho para definir a versão da API de administração do Atlas que queremos. Por fim, enviamos a solicitação e tratamos da resposta na chamada de resposta passada.
E estamos prontos para executar:
Captura de tela do emulador de terminal após a execução do script de solicitação para Node.js. A mensagem impressa mostra que a solicitação foi bem-sucedida.
Vamos para a nossa linguagem final...

Ruby

HTTParty é um Gem amplamente utilizado que é usado pela comunidade Ruby e Rails para executar operações HTTP. Felizmente, ele também suporta autenticação digest. Então, para começar a festa:
1gem install httparty
Existem duas maneiras de usar o HTTParty. Um é criar um objeto que abstraia as chamadas, enquanto o outro é apenas chamar diretamente métodos no próprio HTTParty. Por brevidade, vamos fazer o último. Aqui está o código:
1require 'httparty'
2require 'json'
3
4base_url = 'https://cloud.mongodb.com/api/atlas/v2/'
5options = {
6 :digest_auth => {
7 :username=>ENV['ATLAS_USER'],
8 :password=>ENV['ATLAS_USER_KEY']
9 },
10 headers: {
11 'Accept' => 'application/vnd.atlas.2023-01-01+json' # update date to desired API version
12 }
13}
14
15}
16
17result = HTTParty.get(base_url, options)
18
19pp JSON.parse(result.body())
Exigimos as gems HTTParty e JSON primeiro. Em seguida, criamos um dicionário com nosso nome de usuário e chave, mapeados para a autenticação do HTTParty, e definimos uma variável para manter o URL base. Por fim, adicionamos um cabeçalho para definir a versão da API de administração do Atlas que queremos. Estamos prontos para fazer nossa solicitação GET agora e, no options (o segundo parâmetro da solicitação GET), passamos :digest_auth=>auth para ativar o suporte a digest. Terminamos com JSON analisando o corpo resultante e fazendo uma impressão bonita. Coloque tudo junto e execute e obteremos:
Captura de tela do emulador de terminal após a execução do script de solicitação para Ruby. A mensagem impressa mostra que a solicitação foi bem-sucedida

Próxima parada - A API

Neste artigo, aprenderam como chamar a API de administração do MongoDB Atlas usando autenticação digest. Tiramos proveito dos amplos ecossistemas de bibliotecas de Python, Node.js e Ruby e usamos as seguintes bibliotecas da comunidade de código aberto:
Solicitações para o Python urllib para JavaScript httparty para Ruby
Se o seu projeto exigir, você mesmo poderá implementar a autenticação digest seguindo a especificação oficial. Você pode se inspirar nas implementações nas bibliotecas mencionadas acima.
Além disso, você pode encontrar todas as amostras de código do artigo no Github.
Com a autenticação resolvida, lembre-se de ser rigoroso com a segurança da chave de API e certifique-se de revogar as chaves não utilizadas. Agora você pode explorar a própria API. Comece na documentação e veja o que você pode automatizar hoje.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Crie uma API CRUD com MongoDB, Typescript, Express, Prisma e Zod


Sep 04, 2024 | 10 min read
Notícias e Anúncios

Desbloqueie o valor dos dados no MongoDB Atlas com a análise inteligente do Microsoft Fabric


Nov 17, 2023 | 6 min read
Tutorial

Usando o Confluent Cloud com o Atlas Stream Processing


May 02, 2024 | 5 min read
Início rápido

Começando com o Atlas e a API de consulta do MongoDB


Oct 01, 2024 | 11 min read
Sumário
  • Configurar