Go to main content
Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

Client CurlRest

Les deux clients HTTP courants basés sur la CLI sont wget et curl. Cette section contient plusieurs exemples de l'utilisation de curl pour effectuer des appels de l'API RESTful et utiliser des fonctionnalités similaires permises par wget.

Obtenir les données d'une ressource

L'exemple ci-dessous montre comment utiliser une demande GET HTTP pour obtenir des données au format JSON :

> curl --user ${USER}:${PASSWORD} -k -i https://zfssa.example.com:215/api/nas/v1/pools/gold

 HTTP/1.1 200 OK
 Date: Tue, 23 Jul 2013 12:57:02 GMT
 Server: WSGIServer/0.1 Python/2.6.4
 Content-Length: 284
 Content-Type: application/json
 X-Zfs-Sa-Nas-Api: 1.0

{
   "pool": {
      "profile": "mirror",
      "name": "gold",
      "usage": {
         "available": 895468984832.0,
         "total": 895500681216.0,
         "dedupratio": 100,
         "used": 31696384.0
      },
      "peer": "00000000-0000-0000-0000-000000000000",
      "state": "online",
      "owner": "tanana",
      "asn": "314d252e-c42b-e844-dab1-a3bca680b563"
    }
 }

Créer une nouvelle ressource

L'exemple ci-dessous montre comment envoyer des données au format JSON dans une demande pour créer une ressource :

$ curl --user ${USER}:${PASSWORD} -s -k -i -X POST -d @-  \
  -H "Content-Type: application/json" \
  https://zfssa-host.example.com:215/api/user/v1/users <<JSON
> {"logname": "rest_user",
>  "fullname": "REST User",
>  "initial_password": "letmein"}
> JSON

HTTP/1.1 201 Created
Date: Tue, 23 Jul 2013 13:07:37 GMT
Server: WSGIServer/0.1 Python/2.6.4
X-Zfs-Sa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 357

{
   "user": {
      "logname": "rest_user",
      "fullname": "REST User",
      "initial_password": "DummyPassword",
      "require_annotation": false,
      "kiosk_mode": false,
      "kiosk_screen": "status/dashboard",
      "roles": ["basic"],
      "exceptions": {},
      "preferences": {
         "href": "/api/user/v1/users/larry/preferences",
         "locale": "C",
         "login_screen": "status/dashboard",
         "session_timeout": 15,
         "advanced_analytics": false,
         "keys": {}
      }
   }
} 

Modifier une ressource existante

Dans cet exemple, un délai d'expiration de session utilisateur est modifié :

% curl --user larry:letmein -3 -s -k -i -X PUT \
  -H "Content-Type: application/json" -d @-  \
  https://tanana:215/api/appliance/v1/users/larry/preferences <<JSON
> {"session_timeout":60}
> JSON
HTTP/1.1 202 Accepted
Date: Wed, 24 Jul 2013 05:43:17 GMT
X-Zfs-Sa-Appliance-Api: 1.0
Content-Type: application/json
Content-Length: 0

{
    "preferences": {
        "href": "appliance/v1/users/larry/preferences",
        "locale": "C",
        "login_screen": "status/dashboard",
        "session_timeout": 60,
        "advanced_analytics": false,
        "keys": {}
    }
}

Supprimer une ressource existante

Cette commande supprime un utilisateur du système :

curl --user ${USER}:${PASSWORD} -s -k -i -X DELETE  https://tanana:215/api/appliance/v1/users/jschwartz

HTTP/1.1 204 No Content
Date: Tue, 23 Jul 2013 13:21:11 GMT
Server: WSGIServer/0.1 Python/2.6.4
X-Zfs-Sa-Appliance-Api: 1.0
Content-Length: 0