Die Suchaktion ermöglicht die Abfrage eines beliebigen Endpunkts, um die gewünschten Daten zu erhalten, die gefiltert wurden. Der Benutzer kann die Antwort bearbeiten, indem er einen oder mehrere Filter hinzufügt, die den Bereich der zurückgegebenen Daten anpassen. Es gibt keine Begrenzung für die Anzahl der Filter, die in einer API-Anfrage verwendet werden können.

Details zu einer API-Suchanfrage der Version 3

Hier ist ein Beispiel für eine Suchanfrage.

Endpunkt
Stellt das Objekt oder die Auflistung von Objekten der Anforderung dar.

Im obigen Beispiel ist der Endpunkt die Quelle, wodurch die Aktionen mit der API-Anforderung auf Aktionen beschränkt werden, die speziell für die Bearbeitung von Benutzerdatenobjekten entwickelt wurden.

Aktion
Gibt an, welche Aktionen für den angegebenen Endpunkt ausgeführt werden sollen.

Im obigen Beispiel ist die Aktion Suchen. Die Suche wird verwendet, um Daten von einem Endpunkt abzurufen, der einen bestimmten Satz von Filtern erfüllt.

Filter-Array
Enthält die Liste der erforderlichen Parameter, die erfüllt sein müssen, bevor ein Datenobjekt von der API-Anforderung zurückgegeben wird. Eine Suche kann eine unendliche Anzahl von Filtern enthalten, die als Array formatiert sind. Ein Array ist definiert als eine Anordnung miteinander verbundener Objekte oder Elemente zum Ausführen einer bestimmten Aufgabe.
In der API der Version 3 ist ein Array wie folgt strukturiert: {KeyValue}.
  • Schlüssel: Das Suchattribut, das in doppelte Anführungszeichen (") eingeschlossen werden muss.
  • Wert: Die Zeichenfolge oder Zahl, die mit dem Schlüssel abgeglichen werden soll. Zum Beispiel: action=search&args=[{"full_name":"Steve Joe"}] würde nur Datensätze zurückgeben, bei denen "full_name" (Schlüssel) "Steve Joe" (Wert)ist. Es können beliebig viele Filter verwendet werden, solange sie der Schlüssel:Wert-Struktur entsprechen und durch Kommas getrennt sind.
Hinweis

Wenn Sie der API-Suchanforderung Filterwerte hinzufügen, müssen Textzeichenfolgen in Anführungszeichen stehen.

Die Minitab Connect Suchaktion für API-Endpunkte ist auf einfache Abfragen beschränkt. Zusammengesetzte Suchanfragen müssen sich auf unterschiedliche Schlüssel beziehen. Beispiele: {"A":"Bob"},{"B":"Testen"}. Die zweimalige Abfrage eines Schlüssels in derselben Suchanforderung führt zu einer Antwort, die alle Ergebnisse enthält, die nur der zweiten Bedingung entsprechen. Komplexe Abfragen für einen einzelnen Schlüssel sind über den Endpunkt der Quellschnittstelle mit js_filter möglich.

API-Antwort-Daten

Jede erfolgreiche API-Anfrage der Version 3 gibt Daten in Form eines JSON-Objekts zurück. In diesem Beispiel konzentrieren wir uns auf eine einfache API-Antwort.

Die API-Anforderung von Version 3

Die API-Anforderung, die verwendet wird, ist die obige "Beispiel-API-Anforderung".1 Nachfolgend finden Sie eine Aufschlüsselung des Beispiels:

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

  • Diese Anforderung stellt eine Verbindung zum System bei https://connect.minitab.com/ her und gibt an, dass es sich um eine API-Anforderung der Version 3 mit /api/3handelt.
  • Der Endpunkt /Benutzer ist der Kern der API-Anforderungen, und alles, was folgt, verweist darauf. In diesem Beispiel wird der Zugriff auf den Benutzerendpunkt angefordert.
  • Vor dem Gewähren des Zugriffs muss das System ermitteln, ob die Anforderung von einer autorisierten Quelle stammt. Die Anfrage stellt Anmeldeinformationen für den Server bereit, um ?apikey= zu authentifizieren 45354645644741277812
  • Da es sich hierbei um die erste Variable in der Anforderungs-URL handelt, muss ihr ein Fragezeichen (?) vorangestellt werden.
  • Nachdem die Authentifizierung bestanden wurde, wechselt das System zu der Aktion. &action=Suche Diese Aktion konfiguriert das System so, dass es ein Filterarray akzeptiert, das die Suchparameter bestimmt.
    Hinweis

    Diese Konfigurationsvariable wird durch ein kaufmännisches Und-Zeichen (&) vom API-Schlüssel getrennt. Allen Variablen mit Ausnahme der ersten Variablen wird ein kaufmännisches Und-Zeichen vorangestellt.

  • An dieser Stelle wird das Filterarray gelesen. &args=[{"full_name":"Steve Joe"}] Das Filterarray weist das System an, die Userdata-Objekte zu durchsuchen und alle Objekte zurückzugeben, die das Attribut full_name haben, das gleich "Steve Joe" ist.
  • Das System gibt das JSON-Objekt zurück, das alle Ergebnisse enthält.

Das Antwortobjekt

Die von einer API-Anforderung empfangene Antwort ist ein JSON-Objekt, das alle Benutzerdatenobjekte mit dem Attribut "fname" und dem Wert "Steve" enthält. Alle Antwortobjekte haben die gleiche Grundstruktur und werden als JSON-formatierte Zeichenfolge zurückgegeben.

Die JSON-formatierte Zeichenfolge

{"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}]"} 
  

Suchen nach einer bestimmten Endpunkt-GUID

In diesem Thema wird der Prozess zur Verwendung der API-Suchanforderung Version 3 beschrieben, um die GUID eines gewünschten Endpunkts zu erhalten, indem das Filterarray konfiguriert wird. Außerdem wird erläutert, wie Sie ermitteln, welche Attribute für einen bestimmten Endpunkt zum Filtern verfügbar sind.

Bestimmen, für welchen Endpunkt gesucht werden soll

Jedes Objekt verfügt über Minitab Connect einen entsprechenden Endpunkt, der mithilfe eines Filterarrays durchsucht werden kann. Der erste Schritt bei der Identifizierung einer bestimmten ID besteht darin, zu bestimmen, welcher Endpunkt in der API-Suchanfrage verwendet werden muss. Weitere Informationen zu Endpunkten sowie eine Auflistung aller aktuellen Endpunkte finden Sie in Die Minitab Connect API. Nachdem der erforderliche Endpunkt identifiziert wurde, besteht der nächste Schritt darin, die Liste der Attribute anzufordern, nach denen gesucht werden kann.

(In diesem Artikel wird der Endpunkt "user" verwendet.)

Ausführen der API-Anforderung Version 3 und der empfangenen Antwort

Wenn Ihre API-Anforderung alle erforderlichen Informationen enthält, können Sie die Anforderung ausführen. Jede erfolgreiche API-Anfrage der Version 3 gibt Daten in Form eines JSON-Objekts zurück. Da die Anforderung keine Endpunkt-ID enthielt, enthält die JSON-Antwort alle NULL-Daten. Die Daten sind jedoch nicht das, was wichtig ist; In diesem Beispiel ist der Name des Attributs vor den Daten das, wonach wir suchen. Dies sind die Endpunktattribute. Hier ist das Ergebnis der Beispiel-API-Anfrage:

{  
   "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"

Die Attribute, die für die Suche verwendet werden können, finden Sie im JSON-Antwortobjekt -> "data" -> "attributes". In diesem Beispiel lauten die Attribute bei Verwendung des Benutzerendpunkts wie folgt: user_id, user_guid, full_name, E-Mail, Telefon, user_type_id, cust_id, adobe_key, Anmeldung, last_active, is_active, Ausnahmen, Notizen, two_factor, auth_token, Ablauf, password_history, access_type, notification_preference, primary_id primary_guid. Jedes oder alle dieser Attribute können in einem Filterarray verwendet werden, um eine bestimmte Endpunkt-ID zu ermitteln.

Die Suchaktion und das Erstellen eines Filterarrays

Wir haben nun alle Informationen erfasst, die zum Erstellen unserer Suchaktion erforderlich sind, einschließlich des Filterarrays, das alle Attribute und Werte enthält, die die gewünschte Endpunkt-ID darstellen. Diese Aktion, &action=search, konfiguriert das System so, dass es ein Filterarray akzeptiert, das die Suchparameter bestimmt. Beachten Sie, dass der Aktion ein kaufmännisches Und-Zeichen (&) vorangestellt wird. Denken Sie daran, dass allen Variablen mit Ausnahme der ersten Variablen ein kaufmännisches Und-Zeichen vorangestellt wird.

An dieser Stelle können Sie das Filterarray erstellen. Abhängig von den uns zur Verfügung stehenden Informationen werden wir unterschiedliche Attribute verwenden, um unser Filterarray zu erstellen. Nehmen wir an, wir kennen die folgenden Informationen:

  • Der Name des Benutzers: Barry Joe
  • Der Benutzer ist aktiv
Es stehen mehrere Bedingungen zur Verfügung, um die Suche zu erleichtern. Im Folgenden finden Sie eine Liste der Bedingungen, die zum Erstellen von Vergleichen verwendet werden können:
  • EQ (gleich)
  • ne (ungleich)
  • bw (beginnt mit)
  • ew (endet mit)
  • cn (enthält)
  • bn (beginnt nicht mit)
  • en (endet nicht mit)
  • NC (enthält nicht)
  • in (in [kommagetrennte Liste])
  • ni (nicht in [kommagetrennte Liste])
  • nu (NULL)
  • nn (nicht NULL)
  • lt (kleiner als)
  • le (kleiner oder gleich)
  • gt (größer als)
  • ge (größer oder gleich)

Anhand dieser Informationen und der Liste der Attribute, die für den Benutzerendpunkt verfügbar sind, stellen wir fest, dass wir die Attribute full_name, cust_id und is_active benötigen. Das Filterarray sieht wie folgt aus:

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

Die vollständige API-Suchanfrage Version 3 lautet wie folgt:

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

Wenn wir diese Anfrage ausführen, erhalten wir ein einzelnes Ergebnis:

{  
   "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"

Die Endpunkt-ID ist 17. Jede zukünftige API-Anfrage der Version 3, die sich auf diesen Benutzer auswirken würde, enthält diese ID.

1 Die Beispiel-API-Anforderung enthält zu Demonstrationszwecken einen ungültigen API-Schlüssel und führt zu einem Fehler, wenn sie unverändert verwendet wird. Dies dient der Sicherheit. Ein gültiger API-Schlüssel wurde ersetzt, um eine gültige API-Antwort zu generieren.
2 Der bereitgestellte API-Schlüssel dient nur zu Demonstrationszwecken. Es muss ein gültiger API-Schlüssel angegeben werden, sonst führt die API-Anfrage zu einem Fehler.