La API de administración de Atlas sigue los principios de la Estilo arquitectónicoREST para exponer una serie de recursos internos que permiten el acceso programático a las funciones administrativas de Atlas. Para ver la lista completa de puntos de conexión de la API de administración de Atlas disponibles, consulte Especificación de la API de administración de Atlas.
La API de administración de Atlas no proporciona acceso a los datos almacenados en tus clústeres. Para leer o escribir datos en una base de datos, debes autenticarte en tu clúster utilizando las credenciales de un usuario de base de datos con los roles de lectura o escritura adecuados. Puedes utilizar la API de administración de Atlas para crear y gestionar usuarios de base de datos.
Al igual que con los cambios realizados a través de la interfaz web de Atlas, los cambios realizados a través de la API de administración de Atlas están sujetos a las modificaciones de Atlas. Facturación. Si se le aplican cargos, debe tener una tarjeta de crédito válida registrada en Atlas o se arriesga a que su cuenta sea bloqueada.
La API tiene las siguientes características:
- Control de versiones de recursos
Atlas ofrece una API de administración de Atlas con versiones, que incluye el control de versiones a nivel de recurso individual de la API. Utilice estos recursos y las siguientes secciones para obtener más información sobre la API de administración de Atlas:
- EntidadesJSON
- Todas las entidades se expresan en JSON.
- Interfaz navegable
- Mediante un mecanismo de vinculación coherente, puedes explorar toda la API de administración de Atlas comenzando en el recurso raíz y siguiendo enlaces a los recursos relacionados.
- SóloHTTPS
- Solo puede acceder a la API de administración de Atlas a través de HTTPS, lo que garantiza que todos los datos enviados a través de la red estén completamente encriptados mediante TLS.
- Control de acceso de usuarios
Las capacidades de la API de administración de Atlas para cada usuario de Atlas coinciden con los permisos otorgados por sus roles de usuario de Atlas.
Ejemplo
Un usuario con la
Project Read OnlyEl rol en un proyecto Atlas no puede modificar ningún recurso dentro de ese proyecto, ya sea a través de la interfaz de usuario de Atlas o de la API de administración de Atlas.- Lista de acceso a la redAPI
Atlas puede proteger el acceso a su API de Administración de Atlas mediante una lista de acceso a la API. Esta lista restringe el acceso a la API a direcciones IP o CIDR específicas. Cada método de autenticación tiene su propia lista de acceso a la API de Administración de Atlas. Al crear una nueva organización mediante la interfaz de usuario de Atlas, Atlas habilita el requisito de la lista de acceso a la API de forma predeterminada.
MétodosHTTP
Todos los recursos admiten un subconjunto de estos métodos HTTP comunes:
Método | Propósito |
|---|---|
| Recupera la representación JSON de un recurso. |
| Cree un nuevo recurso utilizando la representación JSON proporcionada. |
| Reemplace un recurso con la representación JSON proporcionada. |
| Actualice los campos especificados en un recurso utilizando la representación JSON proporcionada. |
| Eliminar un recurso. |
| Devuelve el encabezado de respuesta sin la representación JSON del recurso. |
JSON
Todas las entidades se representan en JSON. Se aplican las siguientes reglas y convenciones:
Encabezado de solicitud de tipo de contenido
Al enviar JSON al servidor a través
POSTde o,PUTasegúrese de especificar el encabezado de solicitud de tipo de contenidoContent-Type: application/jsoncorrecto:.Campos inválidos
Los campos no válidos se rechazan en lugar de ignorarse. Por ejemplo, si intentas crear una nueva entidad y escribes mal uno de los campos, o intentas actualizar una entidad existente e incluyes un campo que no se puede modificar, el servidor responde con un código de estado 400 y un mensaje de error que indica qué campo no es válido.
Fechas con formato ISO-8601
Todas las fechas se devuelven como cadenas con formato ISO-8601designadas en UTC. Al enviar fechas al servidor (es decir, como parámetros de consulta o campos en entidades de solicitud
POSTPATCHo), utilice fechas con formato8601ISO-. Si no especifica una zona horaria, se asume que es UTC. Sin embargo, se recomienda encarecidamente incluir un indicador de zona horaria para evitar ambigüedades.Marcas de tiempo BSON
En algunos casos, una marca de tiempo se devuelve como una marca de tiempo BSON, sobre todo en los recursos de copia de seguridad. Estos se representan en documentos JSON como un objeto con dos campos:,
dateque es una8601cadena de fecha con formato ISO- en UTC con granularidad al segundo, y,incrementun 32entero de bits.Nombres de campos para campos con números
Los campos que contienen valores numéricos en una unidad particular se nombrarán de manera de eliminar la ambigüedad de la unidad utilizada.
Campos vacíos
Los campos que no tienen un valor actual se devuelven con un valor por defecto apropiado.
Se omiten los campos que no tienen un valor por defecto razonable en la entidad.
Orden de campos
Los campos de los documentos JSON devueltos por el servidor no siguen un orden específico y este puede cambiar. No dependa del orden de los campos.
Enlace
Cada recurso incluye uno o más enlaces a subrecursos o recursos relacionados. Los enlaces se colocan en el campo links de una entidad, que es una matriz de objetos de relación de enlace. Cada relación de enlace tiene dos campos:
Campo | Descripción |
|---|---|
| Nombre (o tipo) de la relación. Muchos de estos se consideran como Tipos de Relaciones de Extensión y tienen el prefijo |
| La URL de destino. |
Todas las entidades incluyen al menos una relación de enlace self llamada, que es simplemente su propia URL. Cuando una entidad forma parte de una lista, solo incluye la self relación de enlace.
Para obtener más información, consulte la Especificación de Enlaces Web. Tenga en cuenta que, si bien la especificación describe un formato para incluir enlaces en los encabezados de respuesta HTTP, no es obligatorio. Para facilitar la navegación por la API de Administración de Atlas, se incluyen los enlaces en el cuerpo de la respuesta en lugar de en los encabezados.
Listas
Algunos recursos devuelven una lista de entidades. Cuando se espera una lista de entidades en una respuesta, los resultados se devuelven en lotes, delimitados por los siguientes parámetros de consulta:
Campo | Descripción |
|---|---|
| Número de página (basado en 1). El valor predeterminado es |
| Número de elementos a devolver por página, hasta un máximo de 500. El valor predeterminado es |
| Especifica si la respuesta devuelve el campo |
La entidad de respuesta contiene tres campos:
Campo | Descripción |
|---|---|
| El número total de elementos en todo el conjunto de resultados. |
| El conjunto de resultados, que es una matriz de documentos de entidad. |
| Contiene de una a tres relaciones de enlace: |
Si solicita una lista de entidades y no obtiene resultados, la API de administración de Atlas responde con un 200 código de estado y la results matriz está vacía. 404 En este caso, no responde con un, ya que la lista de entidades podría no estar vacía en el futuro. Sin embargo, si solicita una lista de entidades en un contexto inexistente (por ejemplo, la lista de hosts de un proyecto inexistente), la 404 respuesta sí es.
Sobres
Es posible que algunos clientes no puedan acceder a los encabezados de respuesta HTTP ni al código de estado. En ese caso, puede solicitar que la respuesta incluya un "sobre", que es simplemente una capa adicional de información en el documento JSON y contiene los detalles relevantes que normalmente se incluirían en los encabezados de respuesta. De forma predeterminada, la API de administración de Atlas no incluye la respuesta en un sobre. Para solicitarlo, simplemente agregue el parámetro de envelope=true consulta.
Para las respuestas que contienen una sola entidad, el sobre contiene dos campos:
Campo | Descripción |
|---|---|
| El código de estado HTTP. |
| La entidad solicitada. |
Para las respuestas que contienen una lista de entidades, ya existe un sobre que envuelve los resultados, por lo que especificar envelope=true solo agrega el campo status al sobre existente.
Formateo legible
De forma predeterminada, se eliminan los espacios en blanco superfluos del JSON devuelto por el servidor. Para solicitar un JSON con formato de impresión preimpreso, simplemente añada el pretty=true parámetro de consulta a cualquier solicitud:
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 respuesta
Las respuestas utilizan los códigos de respuesta HTTP estándar, incluidos:
Código | Significado | notas |
|---|---|---|
200 | Vale | La solicitud fue exitosa. Esta suele ser la respuesta a una solicitud |
201 | Creado. | Se creó un nuevo recurso. Esta suele ser la respuesta a una solicitud |
202 | Aceptado | Se aceptó una solicitud para una operación asincrónica. |
400 | Solicitud de mala | Algo estaba mal con la solicitud del cliente. |
401 | No autorizado | Se requiere autenticación, pero no se incluyó en la solicitud. Esto suele significar que se omitió la información de autenticación, que las credenciales proporcionadas son incorrectas o que el usuario asociado con el método de autenticación dado no tiene permiso para acceder al recurso solicitado. |
403 | Forbidden | No se permite el acceso al recurso especificado. |
404 | Not Found | El recurso solicitado no existe. |
405 | Método no permitido | El método HTTP no es compatible con el recurso especificado. Tenga en cuenta que cada recurso solo puede admitir un subconjunto de métodos HTTP. Por ejemplo, no puede |
409 | Conflicto | Esta es la respuesta a una solicitud para crear o modificar una propiedad de una entidad que es única cuando ya existe una entidad existente con el mismo valor para esa propiedad. |
5xx | Varios errores del servidor | Se produjo un problema inesperado. Inténtalo de nuevo más tarde y considera notificar al soporte técnico de Atlas. |
Errors
Cuando una solicitud arroja un error, el cuerpo de la respuesta contiene un documento JSON. Este documento incluye detalles sobre por qué falló la solicitud de la API de administración de Atlas. El documento contiene cinco parámetros:
Parameter | Tipo de dato | Descripción |
|---|---|---|
detalle | string | Descripción legible por humanos que Atlas devuelve para la solicitud errónea de la API de administración de Atlas. |
Error | entero | Código de estado devuelto en el encabezado de la respuesta HTTP. |
errorCode | string | Constante con nombre que representa la solicitud errónea de la API de Administración de Atlas. Para obtener más información sobre estas constantes, consulte Códigos de error de la API de Administración de Atlas. |
Parámetros | arreglo | Lista de parámetros que proporcionan más detalles sobre el error. |
razón | string | Definición del código de estado devuelto en el encabezado de la respuesta HTTP. |
Ejemplo
Atlas devuelve el siguiente cuerpo de respuesta cuando realiza una solicitud en un formato incorrecto:
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 }
Identificación del proyecto
Su ID de proyecto es un valor de cadena que identifica de forma única un proyecto Atlas.
Los proyectos de Atlas se identificaban anteriormente como "grupos". Algunos puntos de conexión de Atlas hacen referencia a group o {GROUP-ID} como parte de la ruta de la solicitud, la consulta o los parámetros del cuerpo. Para cualquier punto de conexión que requiera su {GROUP-ID}, especifique su ID de proyecto.
Para recuperar el ID de su proyecto:
En Atlas, vaya a la Project Settings página.
Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haga clic en Project Settings.
La página Configuración del proyecto se muestra.
Autenticación
La API de administración de Atlas utiliza uno de dos métodos para autenticar las solicitudes: cuentas de servicio o claves de API. Esto garantiza que los tokens de acceso y las claves que sirven como nombres de usuario y contraseñas nunca se envíen a través de la red. Para obtener más información, consulte Métodos de autenticación de la API de administración de Atlas.
Para obtener detalles de uso, consulta realizar una solicitud de API.
Importante
Le recomendamos que utilice cuentas de servicio en lugar de claves API para autenticarse en la API de administración de Atlas. Las claves API son un método de autenticación heredado.
Limitación de velocidad
Ciertos recursos limitan la cantidad de solicitudes que pueden procesar por minuto.
Para estos recursos, Atlas permite hasta 100 solicitudes por minuto por proyecto. Los métodos de autenticación de la API de administración de Atlas pertenecen a una organización, pero se les puede otorgar acceso a varios proyectos.
Ejemplo
Considera dos usuarios: A y B. El usuario A pertenece al proyecto X, y el usuario B pertenece a los proyectos X y Y.
A la 1:00:00pm, el usuario A realiza 50 solicitudes a un recurso con límite de tasa en el proyecto X, todas las cuales se completan a la 1:00:20pm.
A las 1:00:30p. m., el usuario B intenta realizar 60 solicitudes a un recurso con velocidad limitada en el proyecto X.
Dado que el usuario A ya ha utilizado 50 solicitudes dentro del minuto 1:00pm para el proyecto X, las últimas 10 solicitudes que el usuario B intenta realizar son rechazadas.
Sin embargo, el usuario B puede realizar solicitudes a un recurso con límite de velocidad en el proyecto Y, ya que cada proyecto mantiene un contador de solicitudes separado.
A las 1:01:00p. m., las solicitudes al proyecto X pueden continuar, porque el contador de solicitudes utilizado para limitar la velocidad se reinicia cada minuto.
Si excede el límite de velocidad, la API de administración de Atlas devuelve un código de 429 estado HTTP (demasiadas solicitudes).
Próximos pasos
Para comenzar, consulte Introducción a la API de administración de Atlas.
Para gestionar el acceso programático a la API de Administración de Atlas, consulte cualquiera de los siguientes procedimientos: