API de copia y sincronización de NetApp
Las capacidades de copia y sincronización de NetApp que están disponibles a través de la interfaz de usuario web también están disponibles a través de la API RESTful.
Empezar
Para comenzar a utilizar la API de copia y sincronización, debe obtener un token de usuario y su ID de cuenta de consola de NetApp . Necesitará agregar el token y el ID de la cuenta al encabezado de Autorización cuando realice llamadas API.
-
Obtenga un token de usuario desde la consola de NetApp .
POST https://netapp-cloud-account.auth0.com/oauth/token Header: Content-Type: application/json Body: { "username": "<user_email>", "scope": "profile", "audience": "https://api.cloud.netapp.com", "client_id": "UaVhOIXMWQs5i1WdDxauXe5Mqkb34NJQ", "grant_type": "password", "password": "<user_password>" }
Si utiliza una cuenta de correo electrónico personal sin ID de cliente, puede utilizar el ID de cliente predeterminado "QC3AgHk6qdbmC7Yyr82ApBwaaJLwRrNO". -
Obtenga su ID de cuenta de consola de NetApp .
GET https://api.cloudsync.netapp.com/api/accounts Headers: Authorization: Bearer <user_token> Content-Type: application/json
Esta API devolverá una respuesta como la siguiente:
[ { "accountId": "account-JeL97Ry3", "name": "Test" } ]
-
Agregue el token de usuario y el ID de cuenta en el encabezado de Autorización de cada llamada API.
Ejemplo
El siguiente ejemplo muestra una llamada API para crear un agente de datos en Microsoft Azure. Simplemente reemplazarías <user_token> y <accountId> con el token y el ID que obtuviste en los pasos anteriores.
POST https://api.cloudsync.netapp.com/api/data-brokers Headers: Authorization: Bearer <user_token> Content-Type: application/json x-account-id: <accountId> Body: { "name": "databroker1", "type": "AZURE" }
El token de usuario de NetApp Console tiene una fecha de vencimiento. Para actualizar el token, debes llamar nuevamente a la API desde el paso 1.
La respuesta de la API incluye un campo "expires_in" que indica cuándo vence el token.
Utilizar API de listas
Las API de lista son API asincrónicas, por lo que el resultado no se devuelve inmediatamente (por ejemplo: GET /data-brokers/{id}/list-nfs-export-folders
y GET /data-brokers/{id}/list-s3-buckets
). La única respuesta del servidor es el estado HTTP 202. Para obtener el resultado real, debes utilizar el GET /messages/client
API.
-
Llame a la API de lista que desea utilizar.
-
Utilice el
GET /messages/client
API para ver el resultado de la operación. -
Utilice la misma API agregándole el ID que acaba de recibir:
GET http://api.cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Tenga en cuenta que el ID cambia cada vez que llama al
GET /messages/client
API.
Ejemplo
Cuando llamas al list-s3-buckets
API, no se devuelve un resultado inmediatamente:
GET http://api.cloudsync.netapp.com/api/data-brokers/<data-broker-id>/list-s3-buckets
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
El resultado es el código de estado HTTP 202, lo que significa que el mensaje fue aceptado, pero aún no fue procesado.
Para obtener el resultado de la operación, debe utilizar la siguiente API:
GET http://api.cloudsync.netapp.com/api/messages/client
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
El resultado es una matriz con un objeto que incluye un campo ID. El campo ID representa el último mensaje que envió el servidor. Por ejemplo:
[
{
"header": {
"requestId": "init",
"clientId": "init",
"agentId": "init"
},
"payload": {
"init": {}
},
"id": "5801"
}
]
Ahora deberá realizar la siguiente llamada API utilizando el ID que acaba de recibir:
GET http://api.cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
El resultado es una serie de mensajes. Dentro de cada mensaje hay un objeto de carga útil, que consta del nombre de la operación (como clave) y su resultado (como valor). Por ejemplo:
[
{
"payload": {
"list-s3-buckets": [
{
"tags": [
{
"Value": "100$",
"Key": "price"
}
],
"region": {
"displayName": "US West (Oregon)",
"name": "us-west-2"
},
"name": "small"
}
]
},
"header": {
"requestId": "f687ac55-2f0c-40e3-9fa6-57fb8c4094a3",
"clientId": "5beb032f548e6e35f4ed1ba9",
"agentId": "5bed61f4489fb04e34a9aac6"
},
"id": "5802"
}
]
Referencia de API
La documentación para cada API de copia y sincronización está disponible en https://api.cloudsync.netapp.com/docs .