Variables d'entrée pour une requête d'API REST ONTAP
Vous pouvez contrôler le traitement d'un appel API à l'aide de paramètres et de variables définis dans la requête HTTP.
Méthodes HTTP
Les méthodes HTTP prises en charge par l'API REST de ONTAP sont répertoriées dans le tableau suivant.
|
Toutes les méthodes HTTP ne sont pas disponibles sur chacun des terminaux REST. De plus, LE PATCH et LA SUPPRESSION peuvent être utilisés sur une collection. Pour plus d'informations, reportez-vous à la section Object références and Access. |
Méthode HTTP | Description |
---|---|
OBTENEZ |
Récupère les propriétés d'un objet sur une instance ou une collection de ressources. |
POST |
Crée une nouvelle instance de ressource en fonction de l'entrée fournie. |
CORRECTIF |
Met à jour une instance de ressource existante en fonction de l'entrée fournie. |
SUPPRIMER |
Supprime une instance de ressource existante. |
TÊTE |
Émet une requête GET, mais renvoie uniquement les en-têtes HTTP. |
OPTIONS |
Déterminez les méthodes HTTP prises en charge sur un point final spécifique. |
Variables de chemin
Le chemin du point de terminaison utilisé avec chaque appel de l'API REST peut inclure divers identificateurs. Chaque ID correspond à une instance de ressource spécifique. Exemples : ID de cluster et ID de SVM.
En-têtes de demande
Vous devez inclure plusieurs en-têtes dans la requête HTTP.
- Type de contenu
-
Si le corps de la demande inclut JSON, cet en-tête doit être défini sur
application/json
. - Accepter
-
Cette barre de coupe doit être réglée sur
application/hal+json
. S'il est réglé surapplication/json
Aucun des liens HAL ne sera retourné, sauf un lien nécessaire pour récupérer le prochain lot d'enregistrements. Si l'en-tête est autre chose en dehors de ces deux valeurs, la valeur par défaut de l'content-type
en-tête dans la réponse seraapplication/hal+json
. - Autorisation
-
L'authentification de base doit être définie avec le nom d'utilisateur et le mot de passe codés en tant que chaîne base64. Par exemple :
Authorization: Basic YWRtaW46cGV0ZXJzb24=
.
Corps de la demande
Le contenu du corps de la demande varie en fonction de l'appel spécifique. Le corps de requête HTTP comprend l'un des éléments suivants :
-
Objet JSON avec variables d'entrée
-
Objet JSON vide
Filtrage d'objets
Lors de l'émission d'un appel API avec la méthode GET, vous pouvez limiter ou filtrer les objets renvoyés en fonction de n'importe quel attribut à l'aide d'un paramètre de requête.
Un ensemble d'un ou de plusieurs paramètres peut être ajouté à la chaîne d'URL commençant après ?
caractère. Si plusieurs paramètres sont fournis, les paramètres de requête sont divisés en fonction du &
caractère. Chaque clé et chaque valeur du paramètre sont divisées au niveau du =
caractère.
Par exemple, vous pouvez spécifier une valeur exacte à associer à l'aide du signe égal :
<field>=<value>
Pour une requête plus complexe, l'opérateur supplémentaire est placé après le signe égal. Par exemple, pour sélectionner l'ensemble d'objets en fonction d'un champ spécifique supérieur ou égal à une valeur donnée, la requête sera :
<field>=>=<value>
En plus des exemples fournis ci-dessus, des opérateurs supplémentaires sont disponibles pour renvoyer des objets sur une plage de valeurs. Le tableau ci-dessous présente un récapitulatif des opérateurs de filtrage pris en charge par l'API REST ONTAP.
|
Les champs qui ne sont pas définis sont généralement exclus des requêtes correspondantes. |
Opérateur |
Description |
= |
Égal à |
< |
Inférieur à |
> |
Supérieur à |
<= |
Inférieur ou égal à |
>= |
Supérieur ou égal à |
! |
Différent de |
* |
Un caractère générique gourmand |
Vous pouvez également renvoyer une collection d'objets en fonction de la définition ou non d'un champ spécifique à l'aide du null
mot clé ou sa négation !null
dans le cadre de la requête.
Certains workflows de l'API REST de ce site en sont quelques exemples.
-
Filtrer en fonction du
state
variable permettant de sélectionner les disques de spare.
Demande de champs d'objet spécifiques
Par défaut, l'émission d'un appel API à l'aide DE GET renvoie uniquement les attributs qui identifient de manière unique l'objet ou les objets, avec un auto-lien HAL. Cet ensemble minimal de champs sert de clé pour chaque objet et varie en fonction du type d'objet. Vous pouvez sélectionner d'autres propriétés d'objet à l'aide de l' fields
paramètre de requête des manières suivantes :
-
Champs communs ou standard
Spécifiez
fields=*`
pour récupérer les champs d'objet les plus couramment utilisés. Ces champs sont généralement conservés dans la mémoire du serveur local ou nécessitent peu de traitement pour accéder à. Ce sont les mêmes propriétés que pour un objet après avoir utilisé GET avec une clé de chemin d'URL (UUID). -
Tous les champs
Spécifiez
fields=**
pour récupérer tous les champs d'objet, y compris ceux nécessitant un traitement serveur supplémentaire pour accéder. -
Sélection de champ personnalisée
Utiliser
fields=<field_name>
pour spécifier le champ exact souhaité. Lorsque vous demandez plusieurs champs, les valeurs doivent être séparées par des virgules sans espaces.Vous devez toujours identifier les champs spécifiques que vous souhaitez. Vous ne devez récupérer que l'ensemble des champs communs ou tous les champs, le cas échéant. Les champs sont classés comme communs et renvoyés à l'aide de fields=*
, Est déterminée par NetApp en fonction de l'analyse interne des performances. La classification d'un champ pourrait changer dans les versions futures.
Tri des objets dans le jeu de sortie
Les enregistrements d'une collection de ressources sont renvoyés dans l'ordre par défaut défini par l'objet. Vous pouvez modifier la commande à l'aide de la order_by
paramètre de requête avec le nom de champ et la direction de tri comme suit :
order_by=<field name> asc|desc
Par exemple, vous pouvez trier le champ de type par ordre décroissant, suivi d'un ID par ordre croissant :
order_by=type desc, id asc
Notez ce qui suit :
-
Si vous spécifiez un champ de tri mais ne fournissez pas de direction, les valeurs sont triées par ordre croissant.
-
Lorsque vous ajoutez plusieurs paramètres, vous devez séparer les champs par une virgule.
Pagination lors de la récupération d'objets dans une collection
Lors de l'émission d'un appel API à l'aide DE GET pour accéder à une collection d'objets du même type, ONTAP tente de renvoyer le plus grand nombre possible d'objets en fonction de deux contraintes. Vous pouvez contrôler chacune de ces contraintes à l'aide de paramètres de requête supplémentaires sur la demande. La première contrainte atteinte pour une demande GET spécifique met fin à la demande et limite donc le nombre d'enregistrements renvoyés.
|
Si une demande se termine avant de passer à l'itération de tous les objets, la réponse contient le lien nécessaire pour récupérer le lot d'enregistrements suivant. |
- Limitation du nombre d'objets
-
Par défaut, ONTAP renvoie un maximum de 10,000 objets pour une requête GET. Vous pouvez modifier cette limite à l'aide du
max_records
paramètre de requête. Par exemple :max_records=20
Le nombre d'objets effectivement renvoyés peut être inférieur au maximum en vigueur, en fonction de la contrainte de temps associée ainsi que du nombre total d'objets dans le système.
- Limitation du temps utilisé pour récupérer les objets
-
Par défaut, ONTAP renvoie le plus grand nombre d'objets possible dans le temps imparti pour la demande GET. Le délai par défaut est de 15 secondes. Vous pouvez modifier cette limite à l'aide du
return_timeout
paramètre de requête. Par exemple :return_timeout=5
Le nombre d'objets effectivement renvoyés peut être inférieur au maximum en vigueur, en fonction de la contrainte associée sur le nombre d'objets ainsi que du nombre total d'objets dans le système.
- Rétrécir le jeu de résultats
-
Si nécessaire, vous pouvez combiner ces deux paramètres avec des paramètres de requête supplémentaires pour affiner le jeu de résultats. Par exemple, le suivant renvoie jusqu'à 10 événements ems générés après le temps spécifié :
time=> 2018-04-04T15:41:29.140265Z&max_records=10
Vous pouvez émettre plusieurs demandes de page via les objets. Chaque appel d'API suivant doit utiliser une nouvelle valeur de temps basée sur le dernier événement du dernier jeu de résultats.
Propriétés de taille
Les valeurs d'entrée utilisées avec certains appels API ainsi que certains paramètres de requête sont numériques. Au lieu de fournir un entier en octets, vous pouvez éventuellement utiliser un suffixe comme indiqué dans le tableau suivant.
Suffixe | Description |
---|---|
KO |
Ko kilo-octets (1024 octets) ou kibioctets |
MO |
Mo mégaoctets (Ko x 1024 octets) ou mébioctets |
GO |
Go gigaoctets (Mo x 1024 octets) ou gibioctets |
TO |
To Teroctets (Go x 1024 octets) ou tébioctets |
PO |
PB PB po (TB x 1024 octets) ou pemap/ |