API de copie et de synchronisation NetApp
Les fonctionnalités de copie et de synchronisation NetApp disponibles via l'interface utilisateur Web sont également disponibles via l'API RESTful.
Commencer
Pour démarrer avec l’API Copier et synchroniser, vous devez obtenir un jeton utilisateur et votre ID de compte NetApp Console. Vous devrez ajouter le jeton et l'ID de compte à l'en-tête d'autorisation lors des appels d'API.
-
Obtenez un jeton utilisateur à partir de la console 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 vous utilisez un compte de messagerie personnel sans ID client, vous pouvez utiliser l'ID client par défaut « QC3AgHk6qdbmC7Yyr82ApBwaaJLwRrNO ». -
Obtenez votre ID de compte NetApp Console.
GET https://api.cloudsync.netapp.com/api/accounts Headers: Authorization: Bearer <user_token> Content-Type: application/json
Cette API renverra une réponse comme celle-ci :
[ { "accountId": "account-JeL97Ry3", "name": "Test" } ]
-
Ajoutez le jeton utilisateur et l’ID de compte dans l’en-tête d’autorisation de chaque appel d’API.
Exemple
L’exemple suivant montre un appel d’API pour créer un courtier de données dans Microsoft Azure. Vous devez simplement remplacer <user_token> et <accountId> par le jeton et l’ID que vous avez obtenus dans les étapes précédentes.
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" }
Le jeton utilisateur de la console NetApp a une date d’expiration. Pour actualiser le jeton, vous devez à nouveau appeler l’API à partir de l’étape 1.
La réponse de l'API inclut un champ « expires_in » qui indique quand le jeton expire.
Utiliser les API de liste
Les API de liste sont des API asynchrones, donc le résultat n'est pas renvoyé immédiatement (par exemple : GET /data-brokers/{id}/list-nfs-export-folders
et GET /data-brokers/{id}/list-s3-buckets
). La seule réponse du serveur est le statut HTTP 202. Pour obtenir le résultat réel, vous devez utiliser le GET /messages/client
API.
-
Appelez l’API de liste que vous souhaitez utiliser.
-
Utilisez le
GET /messages/client
API pour visualiser le résultat de l'opération. -
Utilisez la même API en y ajoutant l’ID que vous venez de recevoir :
GET http://api.cloudsync.netapp.com/api/messages/client?last=<id_from_step_2>
Notez que l'ID change à chaque fois que vous appelez le
GET /messages/client
API.
Exemple
Lorsque vous appelez le list-s3-buckets
API, un résultat n'est pas immédiatement renvoyé :
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>
Le résultat est le code d’état HTTP 202, ce qui signifie que le message a été accepté, mais n’a pas encore été traité.
Pour obtenir le résultat de l'opération, vous devez utiliser l'API suivante :
GET http://api.cloudsync.netapp.com/api/messages/client
Headers: Authorization: Bearer <user_token>
Content-Type: application/json
x-account-id: <accountId>
Le résultat est un tableau avec un objet qui inclut un champ ID. Le champ ID représente le dernier message envoyé par le serveur. Par exemple:
[
{
"header": {
"requestId": "init",
"clientId": "init",
"agentId": "init"
},
"payload": {
"init": {}
},
"id": "5801"
}
]
Vous devez maintenant effectuer l’appel d’API suivant en utilisant l’ID que vous venez de recevoir :
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>
Le résultat est un tableau de messages. À l'intérieur de chaque message se trouve un objet de charge utile, composé du nom de l'opération (comme clé) et de son résultat (comme valeur). Par exemple:
[
{
"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"
}
]
Référence API
La documentation de chaque API de copie et de synchronisation est disponible à partir de https://api.cloudsync.netapp.com/docs .