Referência da API de administração do Atlas
Nesta página
- A autenticação OAuth 2.0 para acesso programático ao Atlas está disponível como um recurso de visualização.
- O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para utilizar a 2.0 autenticação OAuth, crie uma conta de serviço do para utilizar em seus pedidos para a API de Administração do Atlas .
A API de Administração do Atlas segue os princípios do estilo de arquitetura REST para expor uma série de recursos internos que permitem o acesso programático aos recursos do Atlas.
Assim como acontece com as alterações feitas por meio da interface web do Atlas, as alterações feitas por meio da API de administração do Atlas estão sujeitas à cobrança do Atlas. Se você for cobrado, você precisa ter um cartão de crédito válido registrado no Atlas ou poderá ter a sua conta bloqueada.
A API tem as seguintes funcionalidades:
- Controle de Versão de Recursos
O Atlas fornece uma API de administração do Atlas versionada, que inclui o controle de versão no nível de recurso individual da API de administração do Atlas. Utilize estes recursos e as seguintes seções para saber mais sobre a API de Administração do Atlas:
- Entidades JSON
- Todas as entidades são expressas em JSON.
- Interface navegável
- Usando um mecanismo de vinculação consistente, você pode navegar por toda a API de administração Atlas começando no recurso raiz e seguindo links para recursos relacionados.
- Somente HTTPS
- Você só pode acessar a API de administração do Atlas via HTTPS, garantindo que todos os dados enviados pela rede sejam totalmente criptografados usando TLS.
- Controle de acesso do usuário
Os recursos da API de administração do Atlas de cada usuário do Atlas correspondem às permissões concedidas por suas Funções de usuário do Atlas.
Exemplo
Um usuário com o
Project Read Only
em um projeto Atlas não pode modificar nenhum recurso dentro desse projeto, seja por meio da Atlas user interface ou da API Atlas.- Lista de acesso à rede API
O Atlas pode proteger o acesso à sua API de administração do Atlas por meio de uma lista de acesso à API. Esta lista restringe o acesso à API a endereços IP ou CIDR específicos. Cada método de autenticação tem sua própria lista de acesso à API de administração do Atlas . Quando você cria uma nova organização usando a UI do Atlas , o Atlas ativa o requisito de lista de acesso à API por padrão.
Métodos deHTTP
Todos os recursos aceitam um subconjunto destes métodos comuns de HTTP:
Método | Propósito |
---|---|
| Recupere a representação JSON de um recurso. |
| Crie um novo recurso utilizando a representação de JSON fornecida. |
| Substitua um recurso pela representação de JSON fornecida. |
| Atualize os campos especificados em um recurso utilizando a representação JSON fornecida. |
| Remover um recurso. |
| Retorna o cabeçalho de resposta sem a representação de JSON do recurso. |
JSON
Todas as entidades são representadas noJSON. Aplicam-se as seguintes regras e convenções:
Cabeçalho de solicitação de tipo de conteúdo
Ao enviar JSON para o servidor via
POST
ouPUT
, certifique-se de especificar o cabeçalho de solicitação do tipo de conteúdo correto:Content-Type: application/json
Campos inválidos
Campo inválidos são rejeitados em vez de ignorados. Por exemplo, se você tentar criar uma nova entidade e digitar incorretamente um dos campos, ou tentar atualizar uma entidade existente e incluir um campo que não possa ser modificado, o servidor responderá com um código de status 400 e uma mensagem de erro informando qual o campo é inválido.
Datas formatadas em ISO-8601
Todas as datas são retornadas como strings formatadas emISO- designadas em UTC.8601 Ao enviar datas para o servidor (ou seja, como parâmetros de consulta ou campos em
POST
ouPATCH
entidades de solicitação), use datas no formato ISO8601. Se você não especificar um fuso zona, o UTC será presumido. No entanto, é altamente recomendável que você inclua um designador de fuso zona para evitar qualquer ambiguidade.Carimbos de data/hora BSON
Em alguns casos, um carimbo de data/hora é retornado como carimbo de data/hora BSON, principalmente nos recursos de backup. Eles são representados em documentos JSON como um objeto com dois campos:
date
, que é uma string de caracteres de data formatada em ISO8601em UTC com granularidade para o segundo, eincrement
um inteiro de 32bits.Nomes de campo para campos com números
Os campos que contêm valores numéricos em uma unidade específica serão nomeados para diferenciar a unidade que está sendo usada.
Campos vazios
Os campos que não possuem um valor atual são retornados com um valor padrão apropriado.
Os campos que não possuem um valor padrão razoável são omitidos da entidade.
Ordem do campo
Os campos nos documentos JSON retornados pelo servidor não estão em uma ordem específica, e a ordem pode mudar. Não dependa da ordem dos campos.
Vinculação
Cada recurso inclui um ou mais links para sub-recursos e/ou recursos relacionados. Os links são colocados no campo links
de uma entidade , que é uma array de objetos de relação de link. Cada relação de link tem dois campos:
Campo | Descrição |
---|---|
| Nome (ou tipo) da relação. Muitos deles são considerados Tipos de Relação de Extensão e são prefixados por |
| O URL de destino. |
Todas as entidades incluem pelo menos uma relação de link chamada self
, que é simplesmente sua própria URL. Quando uma entidade faz parte de uma lista, ela inclui somente a relação de link self
.
Para obter mais informações, consulte a Especificação de vinculação da web. Observe que, embora a especificação descreva um formato para incluir links nos cabeçalhos de resposta HTTP, isso não é obrigatório. Para tornar a API de administração do Atlas facilmente navegável, ela inclui os links no corpo da resposta em vez de nos cabeçalhos de resposta.
Listas
Alguns recursos retornam uma lista de entidades. Quando uma lista de entidades é esperada em uma resposta, os resultados são retornados em lotes limitados pelos seguintes parâmetros de consulta:
Campo | Descrição |
---|---|
| Número da página (com base em 1). O padrão é |
| Número de itens a serem devolvidos por página, até um máximo de 500. O padrão é |
| Especifica se a resposta retorna o campo |
A entidade de resposta contém três campos:
Campo | Descrição |
---|---|
| O número total de itens em todo o conjunto de resultados. |
| O conjunto de resultados, que é um array de documentos de entidade. |
| Contém uma a três relações de link: |
Se você fizer uma solicitação de uma lista de entidades e não houver resultados, a API de administração do Atlas responderá com um código de status 200 e a array results
estará vazia. Ela não responde com uma 404 nesse caso, pois a lista de entidades pode não estar vazia em algum ponto no futuro. No entanto, se você solicitar uma lista de entidades em um contexto que não existe (por exemplo, a lista de hosts para um projeto inexistente), isso resultará em um status de resposta 404.
Envelopes
Alguns clientes podem não conseguir acessar os cabeçalhos de resposta HTTP e/ou o código de status. Nesse caso, você pode solicitar que a resposta inclua um "envelope", que é simplesmente uma camada adicional de informações no documento JSON e contém todos os detalhes relevantes que normalmente estariam nos cabeçalhos de resposta. Por padrão, a API de Administração do Atlas não inclui a resposta em um envelope. Para solicitar um, basta adicionar o parâmetro de query envelope=true
.
Para respostas que contêm uma única entidade, o envelope contém dois campos:
Campo | Descrição |
---|---|
| O código de status HTTP. |
| A entidade solicitada. |
Para respostas que contêm uma lista de entidades, já existe um envelope que envolve os resultados, portanto, especificar envelope=true
apenas adiciona o campo status
ao envelope existente.
Pretty printing
Por padrão, os espaços em branco estranhos são removidos do JSON retornado pelo servidor. Para solicitar JSON bem impresso, basta acrescentar o parâmetro de query pretty=true
a qualquer solicitação:
curl --user '{USERNAME}:{APIKEY}' --digest \ --header 'Accept: application/json' \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v1.0?pretty=true"
Códigos de resposta
As respostas usam os códigos de resposta HTTP padrão, incluindo:
Código | Significado | Notas |
---|---|---|
200 | OK | A solicitação foi bem-sucedida. Normalmente, essa é a resposta a uma solicitação |
201 | Criado | Um novo recurso foi criado. Normalmente, essa é a resposta a uma solicitação |
202 | Aceito | Uma solicitação para uma operação assíncrona foi aceita. |
400 | Solicitação inválida | Algo estava errado com o pedido do cliente. |
401 | Não autorizado | A autenticação é necessária, mas não estava presente na solicitação. Normalmente, isso significa que as informações de autenticação foram omitidas da solicitação, as credenciais fornecidas estão incorretas ou o usuário associado ao método de autenticação fornecido não tem permissão para acessar o recurso solicitado. |
403 | Proibido | O acesso ao recurso especificado não é permitido. |
404 | Não encontrado | O recurso solicitado não existe. |
405 | Método não permitido | O método HTTP não é suportado para o recurso especificado. Lembre-se de que cada recurso só pode oferecer suporte a um subconjunto de métodos HTTP . Por exemplo, você não pode |
409 | Conflito | Esta é a resposta a uma solicitação para criar ou modificar uma propriedade de uma entidade que é exclusiva quando uma entidade existente já existe com o mesmo valor para aquela propriedade. |
5xx | Vários erros do servidor | Algo inesperado deu errado. Tente novamente mais tarde e considere notificar o Suporte da Atlas. |
Errors
Quando uma solicitação retorna um erro, o corpo da resposta contém um documento JSON. Este documento inclui detalhes sobre o motivo da falha na solicitação da API de administração do Atlas. O documento contém cinco parâmetros:
Parâmetro | Tipo de Dados | Descrição |
---|---|---|
detalhe | string | Descrição legível por humanos que o Atlas retorna para a solicitação errônea da API de administração do Atlas. |
Erro | inteiro | Código de status retornado no cabeçalho da resposta HTTP . |
Código de erro | string | Constante nomeada que representa a solicitação errônea da API de administração do Atlas. Para saber mais sobre essas constantes, consulte Códigos de erro da API de administração do Atlas. |
Parâmetros | array | Lista de parâmetros incluídos na solicitação da API de administração do Atlas. |
Razão | string | Definição de código de status retornado no cabeçalho da resposta HTTP . |
Exemplo
O Atlas retorna o seguinte corpo de resposta quando você faz uma solicitação no formato incorreto:
1 { 2 "detail" : "Cannot find resource /api/atlas/v1.0/softwareComponents/version.", 3 "error" : 404, 4 "errorCode" : "RESOURCE_NOT_FOUND", 5 "parameters" : [ "/api/atlas/v1.0/softwareComponents/version" ], 6 "reason" : "Not Found" 7 }
ID do Projeto
Seu ID do projeto é um valor de string que identifica exclusivamente um projeto do Atlas.
Os projetos do Atlas foram identificados anteriormente como "grupos". Alguns endpoints do Atlas fazem referência a group
ou {GROUP-ID}
como parte do caminho da solicitação, da query ou dos parâmetros do corpo. Para qualquer endpoint que exija {GROUP-ID}
, especifique o ID do projeto.
Para recuperar seu ID do projeto:
No Atlas, acesse a página Project Settings.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Settings.
A página Configurações do projeto é exibida.
Autenticação
A API de administração do Atlas usa um dos dois métodos para autenticar solicitações: chaves deAPI ou contas de serviço. Isso garante que as chaves e os tokens de acesso que servem como nomes de usuário e senhas nunca sejam enviados pela rede. Para saber mais,consulte autenticação da API de administração do Atlas .
Para detalhes de uso, consulte Criar uma solicitação de API.
Limitação de taxa
Alguns recursos limitam quantas solicitações podem processar por minuto.
Para esses recursos, o Atlas permite até 100 solicitações por minuto por projeto. Os métodos de autenticação da API de Administração do Atlas pertencem a uma organização, mas podem ter acesso a vários projetos.
Exemplo
Considere dois usuários: A e B. O usuário A pertence ao projeto X, e o usuário B pertence aos projetos X e Y.
Às 13h, o usuário A faz 50 solicitações para um recurso de taxa limitada no projeto X, todas concluídas até 13h20.
Às 13h30, o usuário B tenta fazer 60 solicitações para um recurso limitado de taxa no projeto X.
Como o usuário A já usou até 50 solicitações no minuto 13:00 para o projeto X, as últimas 10 solicitações que o usuário B tenta fazer são rejeitadas.
No entanto, o usuário B pode fazer solicitações para um recurso de taxa limitada no projeto Y, pois cada projeto mantém um contador de solicitações separado.
Às 13h01, as solicitações para o projeto X podem prosseguir, pois o contador de solicitações usado para limitação de taxa é zerado a cada minuto.
Se você exceder o limite de taxa, a API de administração do Atlas retornará um 429 (Solicitações demais) Código de statusHTTP .
Próximos passos
Para começar, consulte Introdução à API do Atlas Administration.
Para gerenciar o acesso de programação à API de administração do Atlas, consulte qualquer um dos seguintes procedimentos: