L’action de recherche permet à l’interrogation de n’importe quel point de terminaison de recevoir les données désirées qui ont été filtrées. L’utilisateur peut choisir de manipuler la réponse en ajoutant un ou plusieurs filtres qui ajustent la plage de données retournées. Il n’y a pas de limite au nombre de filtres pouvant être utilisés dans une requête API.

Détails d’une requête de recherche API version 3

Voici un exemple de demande de recherche.

Extrémité
Représente l’objet, ou la collection d’objets, de la demande.

Dans l’exemple ci-dessus, le point d’extrémité est le source, ce qui limite ce qui peut être fait avec la requête API aux actions spécifiquement conçues pour manipuler des objets de données utilisateur.

Action
Précise quelles actions entreprendre pour le point de terminaison spécifié.

Dans l’exemple ci-dessus, l’action est Recherche. La recherche est utilisée pour obtenir des données d’un point final qui répond à un ensemble spécifique de filtres.

Réseau de filtres
Détient la liste des paramètres requis qui doivent être respectés avant qu’un objet de données ne soit retourné par la requête API. Une recherche peut comporter un nombre infini de filtres formatés en tableau. Un tableau est défini comme une disposition d’objets ou d’éléments interconnectés pour accomplir une tâche particulière.
Dans l’API version 3, un tableau est structuré comme suit : {Valeur Clé}.
  • Clé: L’attribut de recherche doit être inclus entre guillemets doubles (").
  • Valeur : La corde ou le nombre à associer à la tonalité. Par exemple : action=search&args=[{"full_name » :"Steve Joe"}] ne retournerait que les enregistrements où « full_name » ( Clé) est « Steve Joe » (Valeur). N’importe quel nombre de filtres peuvent être utilisés tant qu’ils correspondent à la structure Clé :Valeur et sont séparés par des virgules.
Remarque

Lorsque vous ajoutez des valeurs de filtre à la requête de recherche API, les chaînes de texte doivent être à l’intérieur de guillemets.

L’action Minitab Connect de recherche du point d’accès API est limitée aux requêtes simples. Les requêtes de recherche composée doivent concerner des clés différentes. Par exemple : {"A » :"Bob"},{"B » :"Test"}. Interroger une clé deux fois dans la même requête donne une réponse contenant tous les résultats correspondant uniquement à la seconde condition. Des requêtes complexes sur une seule clé sont possibles via le point d’extrémité de l’interface source en utilisant js_filter.

Données de réponse API

Chaque requête API réussie en version 3 renvoie des données sous forme d’objet JSON. Dans cet exemple, nous allons nous concentrer sur une réponse API simple.

La requête API version 3

La requête API qui sera utilisée est la « Requête API d’exemple » ci-dessus.1 Voici un résumé de l’exemple :

https://connect.minitab.com/api/3/User?apikey=45354645654474127781&action=search&args=[{"full_name » :"Steve Joe"}]

  • Cette requête se connecte au système à https://connect.minitab.com/ et précise qu’il s’agit d’une requête API version 3 avec /api/3.
  • Le point de terminaison/utilisateur est le cœur des requêtes API et tout ce qui suit y pointe. Dans cet exemple, l’accès au point d’accès utilisateur est demandé.
  • Avant d’accorder l’accès, le système doit déterminer si la demande provient d’une source autorisée. La requête fournit des identifiants permettant au serveur d’authentifier ?apikey=4535464564474127781 2
  • Parce qu’il s’agit de la première variable de l’URL de requête, elle doit être précédée d’un point d’interrogation ( ?).
  • Après avoir passé l’authentification, le système passe à l’action. &action=recherche Cette action configure le système pour accepter un tableau de filtres qui déterminera les paramètres de recherche.
    Remarque

    Cette variable de configuration est séparée de la clé API par un esperluche (&). Toutes les variables, sauf la première, sont précédées d’une esperluette.

  • À ce stade, le tableau de filtres est lu. &args=[{"full_name » :"Steve Joe"}] Le tableau de filtres demande au système de rechercher dans les objets Userdata et de retourner tous ceux qui ont un attribut de full_name égal à « Steve Joe ».
  • Le système retourne l’objet JSON qui contient tous les résultats.

L’objet réponse

La réponse reçue à une requête API est un objet JSON contenant tous les objets de données User avec l’attribut « fname » et la valeur « Steve ». Tous les objets de réponse ont la même structure de base, et ils sont retournés sous forme de chaîne au format JSON.

La chaîne formatée JSON

{"data":[{"type":"User","id":"999","attributes":{"user_id":"999","user_guid":"558877tu8822","full_name:"Steve
	 Joe","email":"Steve_Smith@minitab.com","phone":"","user_type_id":"66","cust_id":"1","adobe_key":null,"login":null,"theme":"","last_active":null,"is_active":"1","exceptions":[],"notes":"","two_factor":"0","auth_token":null,"expires":null,"password_history":null,"access_type":"40","notification_preference":"noti","primary_id":"user_id","primary_guid":"user_guid"},"meta":{"valid":true,"getters":{"EXCEPTIONSON":"getExceptionsOn","FULLUSERLIST":"getFullUserList","CUSTOMERUSERLIST":"getCustomerUserList","NOTIFICATIONS":"getNotifications","DBSTATUS":"getDBStatus","DBTABLES":"getDBTables","DBVIEWS":"getDBViews","JOBS":"getJobs","UIREFRESH":"getUIRefresh","USERGUID":"getUserGUID","USERID":"getUserID","NAME":"getName","FULLNAME":"getFullName","FNAME":"getFName","MNAME":"getMName","LNAME":"getLName","EMAIL":"getEmail","PHONE":"getPhone","ADOBEKEY":"getAdobeKey","LOGIN":"getLogin","CUSTID":"getCustId","USERTYPEID":"getUserTypeID","THEME":"getTheme","LASTACTIVE":"getLastActive","ISACTIVE":"getIsActive","EXCEPTIONS":"getExceptions","NOTES":"getNotes","TWOFACTOR":"getTwoFactor","AUTHTOKEN":"getAuthToken","EXPIRES":"getExpires","PASSWORDHISTORY":"getPasswordHistory","CUSTOMERSTATS":"getCustomerStats","RELATIVES":"getRelatives","ACCESSTYPE":"getAccessType","NOTIFICATIONPREFERENCE":"getNotificationPreference","ACTIVEUSERS":"getActiveUsers","CONTYPE":"getConType","ID":"getID","PRIMARYID":"getPrimaryID","GUID":"getGUID","PRIMARYGUID":"getPrimaryGUID","PROPERTIES":"getProperties"},"setters":{"CDBO":"setCDBO","USERGUID":"setUserGUID","FNAME":"setFName","MNAME":"setMName","LNAME":"setLName","EMAIL":"setEmail","PHONE":"setPhone","ADOBEKEY":"setAdobeKey","LOGIN":"setLogin","CUSTID":"setCustID","USERTYPEID":"setUserTypeID","THEME":"setTheme","LASTACTIVE":"setLastActive","ISACTIVE":"setIsActive","PASSWORD":"setPassword","NOTES":"setNotes","TWOFACTOR":"setTwofactor","AUTHTOKEN":"setAuthToken","EXPIRES":"setExpires","PASSWORDHISTORY":"setPasswordHistory","ACCESSTYPE":"setAccessType","NOTIFICATIONPREFERENCE":"setNotificationPreference","ID":"setID","DBO":"setDBO"},"actions":{"load":{"parameters":[{"name":"args"}]},"loadExceptions":{"parameters":[]},"addException":{"parameters":[{"name":"args"}]},"updateException":{"parameters":[{"name":"args"}]},"removeException":{"parameters":[{"name":"args"}]},"clearExceptions":{"parameters":[]},"search":{"parameters":[{"name":"args"}]},"remove":{"parameters":[]},"checkPassword":{"parameters":[{"name":"password"}]},"checkPasswordHistory":{"parameters":[{"name":"password"}]},"runDBSQL":{"parameters":[{"name":"args"}]},"removeUIRefresh":{"parameters":[{"name":"args"}]},"createUIRefresh":{"parameters":[{"name":"args"}]},"systemLog":{"parameters":[{"name":"args"}]},"checkLogIn":{"parameters":[{"name":"args"}]},"logIn":{"parameters":[{"name":"args"}]},"removeUser":{"parameters":[]},"whois":{"parameters":[{"name":"auth_token"}]},"auth":{"parameters":[{"name":"args"}]},"commit":{"parameters":[]},"purge":{"parameters":[{"name":"args"}]},"checkRequirements":{"parameters":[{"name":"password"}]},"checkHistory":{"parameters":[{"name":"password"},{"name":"limt"}]},"grantAccess":{"parameters":[{"name":"args"}]},"removeAccess":{"parameters":[{"name":"args"}]},"notify":{"parameters":[{"name":"args"}]},"sharableList":{"parameters":[]},"slackAccounts":{"parameters":[]},"sendSupportRequest":{"parameters":[{"name":"args"}]},"downloadActiveUsers":{"parameters":[{"name":"args"}]},"message":{"parameters":[]},"beginTransaction":{"parameters":[]},"commitTransaction":{"parameters":[]},"rollbackTransaction":{"parameters":[]},"restrictCustomer":{"parameters":[]},"permissionRequired":{"parameters":[{"name":"args"}]}}}}],"meta":{"data_type":"array"},"self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=5555888817ab43&action=search&args=[{%22full_name%22:%22Steve
	 Joe%22}]"} 
  

Recherche d’un GUID de terminaison spécifique

Ce sujet décrit le processus pour utiliser la requête de recherche version 3 de l’API afin de recevoir le GUID d’un point de terminaison souhaité en configurant le tableau de filtres. Il explique également comment déterminer quels attributs sont disponibles pour filtrer sur un point de terminaison donné.

Déterminer contre quel point de départ il faut vérifier

Chaque objet dans Minitab Connect possède un point final correspondant qui peut être recherché à l’aide d’un tableau de filtres. La première étape pour identifier un ID spécifique consiste à déterminer quel point d’extrémité doit être utilisé dans la requête de recherche API. Plus d’informations sur les terminaux ainsi qu’une liste de tous les points de terminaison actuels sont disponibles dans L’API Minitab Connect. Une fois le point de terminaison requis identifié, l’étape suivante consiste à demander la liste des attributs pouvant être recherchés.

(Pour cet article, le point de terminaison « utilisateur » sera utilisé.)

Exécution de la requête API version 3 et réponse reçue

Lorsque votre requête API contient toutes les informations requises, vous pouvez exécuter la requête. Chaque requête API de la version 3 réussie renvoie des données sous forme d’objet JSON. Comme la requête n’incluait pas d’identifiant de terminaison, la réponse JSON contiendra toutes les données NULL. Cependant, ce ne sont pas les données qui comptent ; Dans cet exemple, le nom de l’attribut avant les données est ce que nous recherchons. Ce sont les attributs du point final. Voici le résultat de l’exemple de requête API :

{  
   "data":{  
      "type":"User",
      "attributes":{  
         "user_id":null,
         "user_guid":null,
         "full_name":null,
         "email":null,
         "phone":null,
         "user_type_id":null,
         "cust_id":null,
         "adobe_key":null,
         "login":null,
         "theme":null,
         "last_active":null,
         "is_active":null,
         "exceptions":null,
         "notes":null,
         "two_factor":null,
         "auth_token":null,
         "expires":null,
         "password_history":null,
         "access_type":null,
         "notification_preference":"noti",
         "primary_id":"user_id",
         "primary_guid":"user_guid"
      },
      "meta":{  }
   },
   "meta":{  },
   "self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=411412489453456345645"

Les attributs pouvant être utilisés pour rechercher se trouvent dans l’objet de réponse JSON -> « data » -> « attributs ». Dans cet exemple, en utilisant le point de terminaison utilisateur, les attributs sont les suivants : user_id, user_guid, full_name, email, téléphone, user_type_id, cust_id, adobe_key, connexion, last_active, is_active, exceptions, notes, two_factor, auth_token, expires, password_history, access_type, notification_preference, primary_id, primary_guid. Un ou plusieurs de ces attributs peuvent être utilisés dans un tableau de filtres pour cibler un identifiant de terminaison spécifique.

L’action de recherche et la création d’un tableau de filtres

Nous avons maintenant acquis toutes les informations nécessaires pour créer notre action de recherche, y compris le tableau de filtres qui contient tous les attributs et valeurs représentant l’identifiant de terminaison souhaité. Cette action, &action=recherche, configure le système pour accepter un tableau de filtres qui déterminera les paramètres de recherche. Notez que l’action est précédée d’un esperluette (&). Rappelez-vous que toutes les variables, sauf la première, sont précédées d’une esperluette.

À ce stade, vous pouvez créer le tableau de filtres. Selon les informations dont nous disposons, nous utiliserons différents attributs pour construire notre tableau de filtres. Supposons que nous connaissions les informations suivantes :

  • Le nom de l’utilisateur : Barry Joe
  • L’utilisateur est actif
Plusieurs conditions sont disponibles pour faciliter la recherche. Voici la liste des conditionnels pouvant être utilisés pour effectuer des comparaisons :
  • EQ (égal à)
  • ne (non égal à)
  • BW (commence par)
  • ew (se termine par)
  • cn (contient)
  • BN (ne commence pas avec)
  • en (ne s’arrête pas à)
  • NC (ne contient pas)
  • dans (dans [liste séparée par virgule])
  • ni (non dans [liste séparée par virgules])
  • nu (NULL)
  • nn (Pas NULL)
  • Lt (moins que)
  • le (inférieur ou égal à)
  • gt (plus grand que)
  • ge (supérieur ou égal à)

Avec ces informations et la liste des attributs disponibles pour le point d’extrémité utilisateur, nous déterminons que nous avons besoin des attributs full_name, cust_id et is_active. Le tableau de filtres est le suivant :

&args=[{"full_name » :["eq »,"Barry Joe"],"is_active » :["eq »,"1"]}]

La requête de recherche complète de l’API version 3 est la suivante :

https://connect.minitab.com/api/3/User?apikey=411412489453456345645&action=search&args=[{"full_name » :["eq »,"Barry Joe"],"is_active » :["eq »,"1"]}]

Lorsque nous exécutons cette requête, nous recevons un seul résultat :

{  
   "data":{  
      "type":"User",
      "attributes":{  
         "user_id":17,
         "user_guid":"75647362",
         "full_name":"Barry Joe",
         "email":"barry.smith@tmmdata.com",
         "phone":"111-555-1312",
         "user_type_id":20,
         "cust_id":"52342321",
         "adobe_key":null,
         "login":null,
         "theme":"3c",
         "last_active":"2017.10.31 09:53:01",
         "is_active":1,
         "exceptions":null,
         "notes":null,
         "two_factor":null,
         "auth_token":null,
         "expires":null,
         "password_history":null,
         "access_type":50,
         "notification_preference":"noti",
         "primary_id":"user_id",
         "primary_guid":"user_guid"
      },
      "meta":{  }
   },
   "meta":{  },
   "self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=411412489453456345645"

L’identifiant du point de terminaison est 17. Toute future requête API version 3 qui affecterait cet utilisateur contiendra cet ID.

1 La requête API d’exemple contient une clé API invalide à des fins de démonstration et entraînera une erreur si elle est utilisée telle quelle. C’est pour des raisons de sécurité. Une clé API valide était substituée pour générer une réponse API valide.
2 La clé API fournie est uniquement à des fins de démonstration. Une clé API valide doit être fournie, sinon la requête API entraînera une erreur.