RESTful API-Übersicht
Machen Sie sich mit Representational State Transfer (REST) vertraut und erfahren Sie, wie Sie RESTful-APIs mit Juniper Mist™ verwenden können.
Die 100%ige API-Architektur von Juniper Mist unterstützt jede sichtbare Funktion im Juniper Mist Portal. Alles, was Sie im Portal tun können, können Sie mithilfe der API in großem Umfang automatisieren. Representational State Transfer (REST) ist eine zustandslose Client/Server-Architektur mit einer einheitlichen Schnittstelle. Da Maschinen keine Verwendung für eine Benutzeroberfläche haben, ermöglichen APIs eine definierte und schnellere Art und Weise, wie Maschinen miteinander kommunizieren können.
Mit REST-APIs können Sie Ihre eigene Art der Interaktion mit Systemen und Anwendungen erstellen. Sie können sogar benutzerdefinierte Funktionen erstellen. Andere gängige Anwendungsszenarien für REST-APIs sind die Kommunikation und der Datenaustausch zwischen Anwendungen, der Datenaustausch zwischen Anwendungen und Servern, die Kommunikation zwischen Microservices innerhalb einer Anwendung und vieles mehr. REST ist zustandslos, was es ideal für Cloud-basierte Dienste macht.
Die Juniper Mist-API steht jedem Kunden mit einem Juniper Mist Konto zur Verfügung.
Weitere Informationen finden Sie auch in der Mist-API-Referenz. Dies enthält zusätzliche Dokumentation für Entwickler sowie die Möglichkeit, API-Aufrufe zu testen.
Juniper Mist API-Architektur
Juniper Mist verwendet REST-APIs, die HTTP-Methoden (GET, POST, PUT und DELETE) verwenden, um Daten im JSON-Format (JavaScript Object Notation) zu übertragen.
RESTful-API-Anfragen
Die Verwendung von RESTful-APIs folgt einer ähnlichen Praxis wie die CRUD-Methodik (Create, Read, Update, Delete), die bei der Entwicklung verwendet wird. Dies sind die vier grundlegenden Aktionen oder Funktionen, die bei der Arbeit mit Daten verwendet werden.
CRUD | HTTP/REST |
---|---|
Schaffen | BEREITSTELLEN |
Lesen | ERHALTEN |
Aktualisieren | STELLEN |
Löschen | LÖSCHEN |
URL-Format für API-Endpunkt
Die API-Endpunkt-URL besteht aus zwei Teilen:
-
API-Host (oder Endpunkt): Der Endpunkt für die globale Region, der Ihre Juniper Mist Organisation zugeordnet ist. Diese Endpunkte sind unter API-Endpunkte und globale Regionen aufgeführt.
-
Funktion: Alles, was auf dem API-Endpunkt folgt, stellt die Funktion dar, die die API aufruft.
Beispiel
https://{api-host}/api/v1/sites/{site_id}/stats/devices/{device_id}
aus.
https://api.mist.com/api/v1/sites/13b0ee00-121a-456e-84e0-ead3008bc2f2/stats/devices/00000000-0000-0000-1000-d420b08532eb
Ersetzen Sie bei der Wiederverwendung von Codeblöcken Platzhalterwerte durch tatsächliche Werte, z. B. Ihr API-Token, Ihre Unternehmens-ID, Ihre Standort-ID, Ihren AP-Namen usw.
Alles, was nach {api-host} kommt, ist die Funktion. Der Anruf geht an die globale Cloud und fordert die Statistiken für das angegebene Gerät am angegebenen Standort an.
Im nächsten Abschnitt wird die Struktur, aus der ein API-Aufruf besteht, genauer betrachtet.
Struktur von API-Aufrufen
Die folgende Abbildung ist ein Beispiel für einen API-Aufruf und die verschiedenen Komponenten, aus denen er besteht.
API-Aufrufkomponente |
Beschreibung |
---|---|
HTTP-Methode |
|
Host (oder API-Endpunkt) |
Bestimmt die zu verwendende Juniper Mist Cloud (Global 01, EMEA 01 usw.). Der Endpunkt für die globale Region, der Ihre Juniper Mist Organisation zugeordnet ist. Weitere Informationen finden Sie unter API-Endpunkte und globale Regionen. |
Version |
Die zu verwendende API-Version (derzeit verwenden alle APIs v1). |
Umfang |
Gibt die Ebene an, auf der die Anforderung ausgeführt wird. Beispiele hierfür sind "msp", "org", "site", "self", "register", "installer", "const" usw. |
Bereichs-ID |
Identifiziert den zu verwendenden Bereich. |
Objekt |
Der Typ des zu verwendenden Objekts (Gerät, WLAN usw.). |
Objekt-ID |
Identifiziert das anzufordernde Objekt. |
Um einen der oben genannten REST-Befehle (POST, GET, PUT, DELETE) für die REST-API ausführen zu können, müssen Sie in jeder Anforderung einige Anforderungen erfüllen, z. B.:
-
Authentifizierung:
-
-
Sie können ein API-Token, Juniper Mist Anmeldeinformationen oder einen externen OAuth2-Anbieter verwenden, um anzugeben, wer Sie sind und worauf Sie während des Authentifizierungsprozesses Zugriff haben.
-
Weitere Informationen zu den verschiedenen Authentifizierungsmethoden finden Sie unter Authentifizierung.
Anmerkung:Wenn Sie bereits bei manage.mist.com angemeldet sind, können Sie einfach einen neuen Browser-Tab öffnen und auf https://api.mist.com/api/v1/self/apitokens gehen und auf die Schaltfläche POSTEN klicken. Dadurch wird automatisch ein neues API-Benutzertoken erstellt.
Weitere Informationen zu Token finden Sie unter Erstellen von API-Token.
-
-
HTTP-Header: Dieser Header gibt den Inhalt und den Autorisierungstyp wie folgt an:
-
Für Juniper Mist ist der Inhaltstyp immer application/json.
-
Die Autorisierung kann ein Token oder ein Cookie (einschließlich CSRF-Token und Session-ID) sein.
-
-
Der Endpunkt für die globale Region, der Ihre Juniper Mist Organisation zugeordnet ist. Weitere Informationen finden Sie unter API-Endpunkte und globale Regionen.
Die folgende Tabelle enthält Beispiele für die verschiedenen Teile, aus denen eine RESTful-API-Anforderung besteht.
CRUD-Betrieb |
HTTP-Header-Authentifizierung |
Endpunkt-URL |
Nutzdaten (JSON) |
---|---|---|---|
ERHALTEN |
API-Token |
https://api.mist.com/api/v1/sites/:site_id/wlans |
|
LÖSCHEN |
CSRF-Token, Sitzungs-ID |
https://api.mist.com/api/v1/sites/:site_id/wlans/:wlan_id |
|
BEREITSTELLEN |
CSRF-Token, Sitzungs-ID |
https://api.mist.com/api/v1/orgs/:org_id/inventory |
{["<claim_code>"]} |
STELLEN |
API-Token |
https://api.mist.com/api/v1/sites/:site_id/wlans/:wlan_id |
{"ssid" : "Neuer Name"} |
JSON-Nutzdaten
Unterschiedliche Funktionen erfordern unterschiedliche Elemente in der JSON-Nutzlast. Die erforderlichen Details können Sie in der API-Dokumentation einsehen.
Im Folgenden finden Sie einen Beispiel-API-Aufruf und die Antwort (JSON-Nutzlast).
API-Aufruf:
POST /api/v1/orgs/{org_id}/rftemplates
Antwort (JSON-Nutzlast):
{ "name": "new-rf-template", "org_id": "a97c1b22-a4e9-411e-9bfd-d8695a0f9e61", "band_5": { "allow_rrm_disable": false, "ant_gain": 0, "channels": [], "disabled": false, "power_max": 17, "power_min": 8 }, "band_24": { "allow_rrm_disable": false, "ant_gain": 0, "channels": [], "disabled": false, "power_max": 17, "power_min": 8 }, "country_code": "CA" }
Begrenzung der API-Rate
Juniper Mist ist auf 5.000 API-Aufrufe pro Stunde beschränkt. Wenn Sie mehr als 5.000 Anrufe pro Stunde tätigen müssen, erstellen Sie ein Support-Ticket.
Bei großen Bereitstellungen wird empfohlen, API-Aufrufe auf Organisationsebene durchzuführen, um zu vermeiden, dass das API-Aufruflimit schnell erreicht wird.
Um Brute-Force-Angriffe zu verhindern, ist die Rate der Anmelde-API (/api/v1/login) nach drei fehlgeschlagenen Anmeldungen begrenzt.
API-Authentifizierungsoptionen
Die Juniper Mist-API bietet drei Optionen zum Anfordern der Authentifizierung:
-
Standardauthentifizierung – Token
-
Sichern Sie es wie ein Passwort.
-
Anweisungen zum Erstellen eines API-Tokens finden Sie unter Erstellen von API-Token.
-
-
HTTP-Anmeldung – Benutzername und Kennwort
-
Ist wie eine Dashboard-Anmeldung.
-
Kann eine Zwei-Faktor-Authentifizierung sein.
-
-
OAuth2
-
Das Konto muss mit einem OAuth-Anbieter verknüpft sein.
-
Erfordert Browserzugriff.
-
Weitere Informationen zur Authentifizierung finden Sie in der Mist API-Referenz.
Ein einfaches API-Beispiel
Die Django-API-Schnittstelle ist eine webbasierte Schnittstelle, auf der Sie CRUD-Vorgänge innerhalb der API ausführen können. Weitere Informationen finden Sie unter Verwenden der Django-Webschnittstelle zum Vornehmen von API-Änderungen.
Mit der Django-API-Schnittstelle können Sie Ihren ersten API-Aufruf tätigen. Nachdem Sie sich bei Mist angemeldet haben, öffnen Sie mit demselben Browser ein neues Fenster und geben Sie die URL https://api.mist.com/api/v1/self
ein. Dies ist die URL für die Global 01 Cloud. Wenn Sie eine andere Cloud verwenden, lautet diese URL anders.
Dies entspricht dem Ausführen dieses API-Aufrufs GET /api/v1/self
.
Das oben gezeigte Ergebnis zeigt die Berechtigungen an, die Ihnen für die Organisationen und Websites zugewiesen wurden, denen Sie zugeordnet sind.