You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/common/de/rest_api.asciidoc
+25-27Lines changed: 25 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ include::global_attr.adoc[]
12
12
13
13
Mit der {CMK} REST-API als Anwendungsprogrammierschnittstelle können Sie die Aufgaben, die Sie sonst in {CMK} über die GUI erledigen, per Kommando oder Skript mit HTTP-Anfragen an den {CMK}-Server übermitteln und ausführen lassen.
14
14
15
-
Das _REST_ im Namen der REST-API steht für _REpresentational State Transfer_ und beschreibt eine Architektur für den Austausch von Daten auf verteilten Systemen -- insbesondere für Web-Dienste.
15
+
Das _REST_ im Begriff _REST-API_ steht für _REpresentational State Transfer_ und beschreibt eine Architektur für den Austausch von Daten auf verteilten Systemen -- insbesondere für Web-Dienste.
16
16
Eine API, die gemäß der REST-Architektur implementiert ist, folgt bestimmten Prinzipien, z.B. dem Client-Server-Modell, der zustandslosen Kommunikation und einer einheitlichen Schnittstelle.
17
17
In der Praxis erfolgt die Umsetzung bevorzugt über das HTTP-Protokoll, wobei die Ressourcen per Uniform Resource Identifier (URI) angesprochen werden und auf diese mit HTTP-Methoden (GET, POST, PUT, DELETE) zugegriffen wird.
18
18
@@ -62,7 +62,7 @@ stattdessen finden Sie die API-Dokumentation außerhalb dieses Handbuchs, direkt
62
62
Die API mit ihrer Dokumentation ist versioniert.
63
63
ifdef::onprem[]
64
64
Seit {CMK}{v25} wird die REST-API in der Version `v1` mit der {CMK}-Software zusammen ausgeliefert.
65
-
Diese Version der API ist kompatibel mit der Version `1.0`, die bis {CMK}{v24} zur Verfügung gestellt wurde.
65
+
Diese Version der API ist kompatibel mit der Version `1.0`, die bis {CMK}{v24} zur Verfügung gestellt wird.
66
66
endif::[]
67
67
ifdef::saas[]
68
68
Sie ist aktuell in der Version `v1` in {CE} enthalten.
@@ -88,7 +88,7 @@ Erst mit der nächsten Major-Version von {CMK} werden abgekündigte API-Versione
88
88
endif::[]
89
89
So liegt es in Ihrer Hand, wann Sie Ihre Skripte auf die neue REST-API-Version aktualisieren.
90
90
ifdef::onprem[]
91
-
Im Artikel zum xref:update_major#rest_api[Update auf Version {current-major}] finden Sie aktuelle Informationen über den empfohlenen Umgang mit den in einer{CMK}-Major-Version jeweils unterstützten REST-API-Versionen.
91
+
Im Artikel zum xref:update_major#rest_api[Update auf Version {current-major}] finden Sie aktuelle Informationen über den empfohlenen Umgang mit den in dieser{CMK}-Major-Version unterstützten REST-API-Versionen.
92
92
endif::[]
93
93
94
94
[TIP]
@@ -119,7 +119,7 @@ image::restapi_help_menu.png[alt="Help-Menü in der Navigationsleiste.",width=60
119
119
120
120
Mit dem Menüpunkt [.guihint]#Introduction# können Sie diesen Artikel öffnen.
121
121
Neben dem Eintrag [.guihint]#Documentation# gibt es für jede Major-Version der REST-API außerdem die Möglichkeit, mit [.guihint]#Interactive GUI# die xref:#rest_api_gui[interaktive GUI] der REST-API zu öffnen.
122
-
Hinweise zur Nutzung der `unstable`-Version der REST-API finden Sie ebenfalls in einem eigenen xref:#unstable[Abschnitt] dieses Artikels.
122
+
Hinweise zur Nutzung der `unstable`-Version der REST-API finden Sie in einem eigenen xref:#unstable[Abschnitt] dieses Artikels.
123
123
124
124
Wenn Sie im [.guihint]#Help#-Menü den Eintrag [.guihint]#Documentation# für die gewünschte API-Version auswählen, wird die API-Dokumentation in einem neuen Browser-Fenster (bzw. Browser-Tab) angezeigt.
125
125
Sie wurde beim Anlegen Ihrer Instanz mitgeliefert, wurde aber separat mit ReDoc generiert und sieht daher anders aus als die Seiten der {CMK}-Web-GUI.
@@ -140,7 +140,7 @@ Die Endpunkte sind in mehrere Ordner organisiert.
140
140
141
141
* Der mittlere Inhaltsbereich enthält die harten Fakten der Dokumentation:
142
142
alle Informationen zur Definition einer Anfrage (mit Parametern, Wertebereichen, Default-Werten und Beschreibungen) und die zugehörigen Antworten (ebenfalls mit allen Details).
143
-
Die möglichen Antworten werden in unterschiedlichen Farben dargestellt, je nachdem ob der zurückgelieferte xref:http-status-code[HTTP-Status-Code] Erfolg oder einen Fehler signalisiert.
143
+
Die möglichen Antworten werden in unterschiedlichen Farben dargestellt, je nachdem ob der zurückgelieferte xref:http_status_code[HTTP-Status-Code] Erfolg oder einen Fehler signalisiert.
144
144
145
145
* Der rechte Beispielbereich ([.guihint]#Request samples#) zeigt für den im Inhaltsbereich ausgewählten Endpunkt die Methode und die URL, gefolgt von mehreren Beispielen zu Anfragen:
146
146
die Payload im JSON-Format (falls relevant für den Endpunkt) und Code-Beispiele z.B. für Python mit `requests`, Python mit `urllib`, Bash mit Httpie und Bash mit Curl.
@@ -154,7 +154,7 @@ Das responsive Web-Design sorgt dafür, dass in einem Browser-Fenster mit gering
154
154
In allen Bereichen finden Sie Inhalte, die Sie ein- und ausblenden können, zum Beispiel im Navigationsbereich die Einträge für die Endpunkte und im Inhaltsbereich verschachtelte Parameter.
155
155
Durch Anklicken von > oder [.guihint]#Expand all# blenden Sie die verborgenen Inhalte ein und mit ∨ oder [.guihint]#Collapse all# wieder aus.
156
156
157
-
Wie Sie die API-Dokumentation nutzen können, um aus den Informationen konkrete Anfragen zu erstellen, an den {CMK}-Server zu senden, ausführen zu lassen und den Erfolg zu kontrollieren:
157
+
Wie Sie die API-Dokumentation nutzen können, um konkrete Anfragen zu erstellen, an den {CMK}-Server zu senden, ausführen zu lassen und den Erfolg zu kontrollieren:
158
158
all das erfahren Sie im nächsten Kapitel.
159
159
160
160
@@ -194,8 +194,8 @@ Beide Informationen müssen im Header jeder Anfrage an den {CMK}-Server übermit
194
194
195
195
Sie finden Automationsbenutzer, wie andere Benutzer auch, unter [.guihint]#Setup > Users > Users#.
196
196
Um alle Endpunkte der REST-API zu nutzen, brauchen Sie einen Automationsbenutzer mit recht umfangreichen xref:wato_user#roles[Berechtigungen].
197
-
ifdef::onprem[]
198
197
198
+
ifdef::onprem[]
199
199
.Tipps: Geeigneten Automationsbenutzer anlegen
200
200
[%collapsible]
201
201
====
@@ -208,7 +208,6 @@ Erstellen Sie als nächstes unter [.guihint]#Setup > Users > Users# einen neuen
208
208
Die Eigenschaften für den neu angelegten Automationsbenutzer konfigurieren Sie so wie im Artikel über xref:wato_user#automation[Benutzer und Berechtigungen] beschrieben.
209
209
Wählen Sie als Rolle die von Ihnen zuvor neu erstellte Rolle, um dem neuen Benutzer so alle benötigten Berechtigungen zuzuweisen.
210
210
====
211
-
212
211
endif::[]
213
212
ifdef::saas[]
214
213
Bei einer neu erstellten xref:glossar#site[Instanz] ist der Automationsbenutzer `api_user` bereits angelegt und verfügt über alle benötigten Berechtigungen.
@@ -244,7 +243,7 @@ Die Cookie-Authentifizierung dient zum Ausprobieren und Testen mit der xref:rest
244
243
Ob Anfragen ausgeführt werden können, hängt davon ab, ob Ihr {CMK}-Benutzerkonto die entsprechenden Berechtigungen besitzt.
245
244
246
245
247
-
[#http-status-code]
246
+
[#http_status_code]
248
247
=== HTTP-Status-Code
249
248
250
249
Die REST-API gibt zu jeder Anfrage den link:https://de.wikipedia.org/wiki/HTTP-Statuscode[HTTP-Status-Code^] zurück, mit dem Sie überprüfen können, ob die Anfrage erfolgreich war.
@@ -254,7 +253,7 @@ Beachten Sie, dass der HTTP-Status-Code nur Auskunft über die erfolgreiche Übe
254
253
ifdef::onprem[]
255
254
Ausgeführt werden die Befehle auf dem {CMK}-Server mit xref:glossar#livestatus[Livestatus].
256
255
endif::[]
257
-
Um sicher zu sein, dass die Anfrage über die REST-API auch wirklich das bewirkt, was Sie beabsichtigt haben, müssen Sie die Erfolgskontrolle selbst übernehmen.
256
+
Um sicher zu sein, dass die Anfrage über die REST-API auch wirklich das bewirkt, was Sie beabsichtigt haben, müssen Sie die Erfolgskontrolle selbst übernehmen.
258
257
Die xref:access[API-Dokumentation] enthält im Abschnitt „Queries through the REST API“ ein Beispiel eines Skripts für diese Aufgabe.
259
258
// ES-blocked by KNW-1719: hier auch den Link zum Mirror platzieren mit Anker auf genau diesem Abschnitt
260
259
@@ -271,7 +270,7 @@ Sie sind also auf jedem Gerät ausführbar, das eine Verbindung zum {CMK}-Server
271
270
endif::[]
272
271
273
272
Im Folgenden zeigen wir für einige einfache Beispiele Python-Skripte, in denen die HTTP-Anfragen an die API mit dem Modul `requests` umgesetzt sind.
274
-
Alternativ dazu finden Sie für jedes Beispiel auch eine Curl-Variante.
273
+
Daneben finden Sie für jedes Beispiel auch eine Curl-Variante.
275
274
Inhaltlich sind die alternativen Implementierungen deckungsgleich.
276
275
Zu möglichen Unterschieden im Verhalten der verwendeten Werkzeuge, zum Beispiel in Bezug auf Redirects, empfehlen wir einen Blick in die Dokumentation des jeweiligen Tools.
277
276
@@ -349,7 +348,8 @@ Prinzipiell gehen Sie dabei genauso vor, wie Sie es auch mit der {CMK}-GUI tun w
349
348
.Neben allgemeinen Informationen über den gewählten Endpunkt sehen Sie konkrete Code-Beispiele zur Nutzung
350
349
image::restapi_redoc_2pane.png[alt="Der Eintrag in der API-Dokumentation zum Erstellen eines Hosts.",fullscreen=1]
351
350
352
-
Im mittleren Bereich sehen Sie die Details zur gewählten Anfrage: welche HTTP-Authentifizierung gefordert ist (diese ist identisch für alle Anfragen über die REST-API) und die notwendigen und optionalen Parameter. Notwendig (_required_) sind der Name des Hosts und der Ordner, in dem er angelegt werden soll.
351
+
Im mittleren Bereich sehen Sie die Details zur gewählten Anfrage: welche HTTP-Authentifizierung gefordert ist (diese ist identisch für alle Anfragen über die REST-API) und die notwendigen und optionalen Parameter.
352
+
Notwendig (_required_) sind der Name des Hosts und der Ordner, in dem er angelegt werden soll.
353
353
Standardmäßig wird der Host im Hauptordner ([.guihint]#Main#) erstellt.
354
354
Falls Sie den Host in einem anderen Ordner anlegen wollen, müssen Sie sich eventuell zuerst über eine andere API-Anfrage ([.guihint]#Show all folders#) die existierenden Ordner anzeigen lassen, um die ID des gewünschten herauszufinden.
355
355
@@ -414,7 +414,7 @@ Im ersten Teil des Beispiel-Codes finden Sie die Umgebungsvariablen sowie die Ko
414
414
Darunter folgt der `post`-Befehl auf die Ressource, die unter dem angegebenen Pfad zu finden ist, hier also auf den REST-API-Endpunkt `/domain-types/host_config/collections/all`.
415
415
Als Argumente des `post`-Aufrufs werden unter anderem die Parameter für den Request angegeben, in diesem Fall unter anderem der Name für den neu zu erzeugenden Host, der Ordner, in dem er angelegt werden soll und seine IP-Adresse.
416
416
417
-
Falls die Anfrage erfolgreich war (xref:http-status-code[HTTP-Status-Code] 200 oder 201), folgt nach dem `post`-Befehl eine einfache Ausgabe der Antwort von der API auf den Request.
417
+
Falls die Anfrage erfolgreich war (xref:http_status_code[HTTP-Status-Code] 200 oder 201), folgt nach dem `post`-Befehl eine einfache Ausgabe der Antwort von der API auf den Request.
418
418
Andernfalls wird eine Exception geworfen, deren Beschreibung die Antwort von der API enthält.
419
419
--
420
420
[#create_host_curl]#Bash mit curl#::
@@ -463,15 +463,15 @@ Darunter folgt der `curl`-Befehl mit der POST-Methode auf die Ressource, deren U
463
463
Nach den Header-Zeilen (eine davon definiert die HTTP-Authentifizierung) folgt der Datenteil, in dem die Parameter für den neuen Host festgelegt werden.
464
464
465
465
Die Antwort der API auf die Anfrage wird als JSON-Objekt ausgegeben.
466
-
Durch die Option `--write-out` erhalten Sie außerdem abschließend eine Zeile mit dem xref:http-status-code[HTTP-Status-Code].
466
+
Durch die Option `--write-out` erhalten Sie außerdem abschließend eine Zeile mit dem xref:http_status_code[HTTP-Status-Code].
467
467
--
468
468
====
469
469
470
-
In unserem Beispiel soll der Host `myhost123` mit der IP-Adresse `192.168.0.42` im Hauptordner erstellt werden.
470
+
In diesem Beispiel soll der Host `myhost123` mit der IP-Adresse `192.168.0.42` im Hauptordner erstellt werden.
471
471
472
472
Beachten Sie, dass der Beispiel-Code aus der API-Dokumentation mehr Parameter enthalten kann, als Sie im konkreten Fall vielleicht benötigen.
473
-
Für unser Beispiel ist dies aber nicht der Fall, und Sie müssen nur die beiden vorhandenen Parameter `host_name` und `ipaddress` ändern.
474
-
Fügen Sie außerdem die richtigen Werte für die Umgebungsvariablen ein, um Ihre spezifische {CMK}-Konfiguration korrekt anzusteuern.
473
+
Für das aktuelle Beispiel ist dies aber nicht der Fall, und Sie müssen nur die beiden vorhandenen Parameter `host_name` und `ipaddress` ändern.
474
+
Fügen Sie außerdem die richtigen Werte für die Umgebungsvariablen ein, um Ihre spezifische {CMK}-Instanz korrekt anzusteuern.
475
475
Ihr angepasstes Skript sollte ungefähr so aussehen:
476
476
477
477
[.tabs]
@@ -799,7 +799,7 @@ Done
799
799
----
800
800
801
801
Wenn die gewünschte Service-Erkennung mit den angegebenen Werten möglich ist, wird die Erkennung als Hintergrundauftrag angestoßen.
802
-
Sie werden außerdem an einen anderen Endpunkt der API weitergeleitet (_redirect_), der im Erfolgsfall den HTTP-Status-Code `204` zurückgibt.
802
+
Sie werden an einen anderen Endpunkt der API weitergeleitet (_redirect_), der im Erfolgsfall den HTTP-Status-Code `204` zurückgibt.
803
803
Dieser Code informiert Sie darüber, dass die Aktion erfolgreich war und planmäßig keine inhaltliche Antwort von der API erfolgt ist.
804
804
--
805
805
[#service_discovery_curl_results]#Bash mit curl#::
@@ -903,7 +903,6 @@ curl \
903
903
--
904
904
====
905
905
906
-
907
906
Nach der Ausführung des Skripts werden in der Ausgabe nun zuerst die Header-Zeilen gezeigt.
908
907
Die Beispiel-Ausgaben hier sind gekürzt.
909
908
Hervorgehoben sind das ETag im Header, die Attribute der zwei ausstehenden Änderungen (Host anlegen und Service-Erkennung durchführen) und der HTTP-Status-Code.
@@ -987,7 +986,7 @@ Das ETag benötigen Sie im nächsten und letzten Schritt.
987
986
Zum Abschluss müssen die Änderungen aktiviert werden.
988
987
Die passende Anfrage heißt [.guihint]#Activate pending changes#.
989
988
990
-
Im kopierten Code aus der API-Dokumentation ändern Sie die Header-Zeile `If-Match` und setzen Sie dort das im vorherigen Abschnitt ausgelesene ETag ein.
989
+
Kopieren Sie den Code aus der API-Dokumentation, ändern Sie die Header-Zeile `If-Match` und setzen Sie dort das im vorherigen Abschnitt ausgelesene ETag ein.
991
990
Im Datenteil geben Sie für den Parameter `sites` den Namen der Instanz ein -- dort, wo die Änderungen aktiviert werden sollen.
992
991
993
992
[.tabs]
@@ -1078,7 +1077,6 @@ curl -L \
1078
1077
--
1079
1078
====
1080
1079
1081
-
1082
1080
Führen Sie das Skript aus:
1083
1081
1084
1082
[.tabs]
@@ -1201,7 +1199,7 @@ Zusätzlich zur ausführlichen Dokumentation der REST-API, die oben vorgestellt
1201
1199
die interaktive GUI der REST-API, die einen direkten API-Zugriff auf die {CMK}-Instanz aus dem Browser heraus ermöglicht.
1202
1200
Die interaktive GUI wird mit Swagger erzeugt und ist im Hilfe-Menü Ihrer {CMK}-Instanz verlinkt.
1203
1201
1204
-
Während die API-Dokumentation selbst auch hier auf docs.checkmk.com zur Verfügung gestellt wird, bieten wir keinen Mirror für die interaktive GUI an.
1202
+
// Während die API-Dokumentation selbst auch hier auf docs.checkmk.com zur Verfügung gestellt wird, bieten wir keinen Mirror für die interaktive GUI an.
1205
1203
// ES-blocked by KNW-1719: Link einfügen und sinnvoll darstellen, sobald das möglich ist
1206
1204
Die interaktive GUI ist genau auf _Ihre_ Instanz von {CMK} zugeschnitten -- und somit kann sie auch nur innerhalb von Ihrer Umgebung genutzt werden.
1207
1205
@@ -1211,7 +1209,7 @@ Daraufhin erhalten Sie direkt in der interaktiven GUI die übersichtlich aufbere
1211
1209
1212
1210
Da bestimmte Endpunkte nicht in isolierter Form ohne Kontext angesprochen werden können, bildet die interaktive GUI nur eine Teilmenge der API-Funktionalität ab.
1213
1211
1214
-
Sie öffnen die interaktive GUI in der {CMK}-GUI über die Navigationsleiste im Menü [.guihint]#Help > Developer resources > REST API > Version 1 > Interactive GUI#.
1212
+
Sie öffnen die interaktive GUI aus der {CMK}-GUI über die Navigationsleiste im Menü [.guihint]#Help > Developer resources > REST API > Version 1 > Interactive GUI#.
1215
1213
Die interaktive GUI wird in einem neuen Browser-Fenster (bzw. Browser-Tab) angezeigt:
1216
1214
1217
1215
.Mit [.guihint]#Try it out# haben Sie die Möglichkeit, die vorbereiteten API-Anfragen um eigene Werte zu ergänzen und sie dann abzuschicken
@@ -1236,7 +1234,7 @@ Klicken Sie [.guihint]#Execute#.
1236
1234
1237
1235
. Antwort überprüfen:
1238
1236
Unter [.guihint]#Responses# sehen Sie zunächst das gesendete Curl-Kommando und die URL des Endpunkts.
1239
-
Anschließend wird unter [.guihint]#Server response# die Antwort angezeigt mit HTTP-Status-Code und in [.guihint]#Details# die (mehrzeilig formatierte) REST-API Antwort.
1237
+
Darunter wird unter [.guihint]#Server response# die Antwort angezeigt mit HTTP-Status-Code und in [.guihint]#Details# die (mehrzeilig formatierte) REST-API Antwort.
1240
1238
1241
1239
Die interaktive GUI der REST-API bietet Ihnen also die Möglichkeit, schnell und unkompliziert die Funktionen der API auszuprobieren und sich mit den Details der Eingabewerte und mit konkreten Antworten vertraut zu machen.
1242
1240
@@ -1263,7 +1261,7 @@ Hier können Sie hilfreiche Informationen ablesen, die Ihnen helfen, dem zugrund
1263
1261
----
1264
1262
1265
1263
Je nach Fehler können die in der Ausgabe angezeigten Parameter unterschiedlich sein.
1266
-
Immer erhalten Sie aber -- wie auch bei erfolgreichen Anfragen -- in `status` den xref:http-status-code[HTTP-Status-Code] und in `title` eine Kurzbeschreibung der Rückmeldung von der API.
1264
+
Immer erhalten Sie aber -- wie auch bei erfolgreichen Anfragen -- in `status` den xref:http_status_code[HTTP-Status-Code] und in `title` eine Kurzbeschreibung der Rückmeldung von der API.
1267
1265
1268
1266
In den meisten Fällen zeigt Ihnen `detail`, wie der Name schon vermuten lässt, detaillierte Informationen an.
1269
1267
Im obigen Beispiel erfahren Sie, dass es zwar ausstehende Änderungen in {CMK} gibt, diese aber nicht mit der durchgeführten API-Anfrage aktiviert werden dürfen.
@@ -1289,7 +1287,7 @@ Auch im nächsten Beispiel stecken die hilfreichen in den detaillierten Informat
1289
1287
1290
1288
Hier liegt das Problem darin, dass ein Parameterwert sich nicht an den gültigen Wertebereich hält (wegen eines Schrägstrichs im Host-Namen).
1291
1289
1292
-
Die Anzahl der möglichen Fehler ist natürlich sehr viel länger als die beiden, die wir vorgestellt haben.
1290
+
In diesem Handbuchartikel sollen nicht sämtliche möglichen Fehler von API-Anfragen aufgelistet werden.
1293
1291
An den gezeigten Beispielen sehen Sie aber, dass die REST-API in der Ausgabe meist genügend Informationen über die Ursache liefert und Ihnen so Anhaltspunkte für den Einstieg in die Analyse und die Fehlerbehebung gibt.
1294
1292
1295
1293
@@ -1316,7 +1314,7 @@ endif::[]
1316
1314
====
1317
1315
Wie der Name schon andeutet, gilt für die Funktionalität der REST-API in der `unstable`-Version keine Garantie und kein Anspruch auf Support.
1318
1316
Experimentelle Endpunkte können jederzeit und ohne Vorwarnung geändert oder abgeschaltet werden.
1319
-
Im produktiven Betrieb sollten Sie immer nur Endpunkte von Versionen der REST-API ansteuern, die zu einer von Ihrer {CMK}-Instanz unterstützten Version der REST-API gehören!
1317
+
Im produktiven Betrieb sollten Sie immer nur Endpunkte der REST-API ansteuern, die zu einer von Ihrer {CMK}-Instanz unterstützten Version der REST-API gehören!
0 commit comments