API Cloud Sync
Le funzionalità di Cloud Sync disponibili tramite l'interfaccia utente Web sono disponibili anche tramite le API RESTful.
Per iniziare
Per iniziare a utilizzare le API di Cloud Sync, è necessario ottenere un token utente e l'ID account di Cloud Central. Quando si effettua una chiamata API, è necessario aggiungere il token e l'ID dell'account all'intestazione Authorization (autorizzazione).
-
Ottieni un token utente da NetApp Cloud Central.
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>" }
-
Ottieni il tuo ID account Cloud Central.
GET https://cloudsync.netapp.com/api/accounts Headers: Authorization: Bearer <user_token> Content-Type: application/json
Questa API restituirà una risposta come la seguente:
[ { "accountId": "account-JeL97Ry3", "name": "Test" } ]
-
Aggiungere il token utente e l'ID account nell'intestazione Authorization di ogni chiamata API.
Esempio
Nell'esempio seguente viene illustrata una chiamata API per creare un data broker in Microsoft Azure. È sufficiente sostituire <user_token> e <accountId> con il token e l'ID ottenuti nei passaggi precedenti.
POST https://cloudsync.netapp.com/api/data-brokers Headers: Authorization: Bearer <user_token> Content-Type: application/json x-account-id: <accountId> Body: { "name": "databroker1", "type": "AZURE" }
Riferimento API
La documentazione per ogni API Cloud Sync è disponibile all'indirizzo "NetApp Cloud Central".
Utilizzo delle API di elenco
Le API di elenco sono API asincrone, pertanto il risultato non viene restituito immediatamente (ad esempio: GET /data-brokers/{id}/list-nfs-export-folders
e. GET /data-brokers/{id}/list-s3-buckets
). L'unica risposta dal server è lo stato HTTP 202. Per ottenere il risultato effettivo, è necessario utilizzare GET /messages/client
API.
-
Chiamare l'API dell'elenco che si desidera utilizzare.
-
Utilizzare
GET /messages/client
API per visualizzare il risultato dell'operazione. -
Utilizzare la stessa API aggiungendo l'ID appena ricevuto:
GET http://cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Tenere presente che l'ID cambia ogni volta che si chiama
GET /messages/client
API.
Esempio
Quando si chiama list-s3-buckets
API, un risultato non viene restituito immediatamente:
GET http://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>
Il risultato è il codice di stato HTTP 202, che significa che il messaggio è stato accettato, ma non è stato ancora elaborato.
Per ottenere il risultato dell'operazione, è necessario utilizzare la seguente API:
GET http://cloudsync.netapp.com/api/messages/client
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
Il risultato è una matrice con un oggetto che include un campo ID. Il campo ID rappresenta l'ultimo messaggio inviato dal server. Ad esempio:
[
{
"header": {
"requestId": "init",
"clientId": "init",
"agentId": "init"
},
"payload": {
"init": {}
},
"id": "5801"
}
]
A questo punto, effettuare la seguente chiamata API utilizzando l'ID appena ricevuto:
GET http://cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
Il risultato è una serie di messaggi. All'interno di ogni messaggio è presente un oggetto payload, che consiste nel nome dell'operazione (come chiave) e nel relativo risultato (come valore). Ad esempio:
[
{
"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"
}
]