Getty Images

So helfen cURL und Postman bei der Arbeit mit Netzwerk-APIs

Um mit Netzwerk-APIs zu arbeiten, bieten sich cURL und Postman an. Diese Tools ermöglichen es etwa, Schnittstelleninfos abzurufen und Gerätekonfigurationsdaten zu bearbeiten.

APIs vereinfachen die Arbeit von Netzwerktechnikern. Sie dominieren die Hightech-Welt, von Smartphones und Smartwatches bis hin zur Internationalen Raumstation und Rechenzentren auf der ganzen Welt.

Wer schon einmal mit APIs gearbeitet hat, wird wahrscheinlich nicht mehr zur Befehlszeile (Command-line Interface, CLI) mit ihrer verwirrenden Syntax zurückkehren, die oft zu Fehlern führt. Dadurch kann es zu Netzwerkausfällen und Umsatzeinbußen für Unternehmen kommen. APIs sind die neuen CLIs.

Im vorherigen Artikel über Anwendungsfälle von Netzwerk-APIs haben wir einen Überblick darüber gegeben, was APIs sind, welche Anwendungsfälle es gibt und warum Netzwerktechniker sie in einer Welt nutzen sollten, in der Agilität der Schlüssel ist, um hochwertige Services bereitzustellen. Dieser Artikel zeigt nun, wie Netzwerktechniker Tools wie cURL und Postman verwenden können, um mit Netzwerk-APIs zu interagieren.

Worum handelt es sich bei cURL und Postman?

Die meisten Netzwerktechniker haben in verschiedenen Netzwerk- und Entwickler-Communities schon von cURL und Postman gehört. Postman ist eine GUI-basierte API-Testplattform mit mehr als 20 Millionen Nutzern weltweit. Sie hilft Entwicklern, ihre APIs zu entwerfen, zu erstellen, zu testen und mit mehr Iterationen zu verbessern. Der Einsatz des Tools vereinfacht API-Workflows in Test- und Produktionsumgebungen.

Das Befehlszeilen-Tool cURL wird verwendet, um Daten zum und vom Server zu übertragen. Das Tool erfreut sich aufgrund seiner umfangreichen Funktionen (zum Beispiel der Multiprotokollunterstützung, insbesondere HTTP und HTTPS) großer Beliebtheit.

Um Postman und cURL zu nutzen, müssen Netzwerktechniker festlegen, welches HTTP-Verb verwendet werden soll, um mit Infrastrukturen zu interagieren. Eine Möglichkeit, dies zu erreichen, besteht darin, HTTP-Verben mit CRUD-Funktionen (Create, Read, Update, Delete) zu verknüpfen, die von Datenbanken verwendet werden.

HTTP-VERB CRUD-OPERATION

POST

CREATE

GET

READ

PUT

UPDATE

PATCH

UPDATE

DELETE

DELETE

Datenübertragung, Erstellen von APIs und Automatisierung von Netzwerkaufgaben

Im Networking ist Secure Shell (SSH) ein weitverbreitetes Protokoll für den sicheren Remote-Zugriff auf Netzwerkgeräte. Mit dem zunehmenden Bedarf an Automatisierung und der Verwendung von APIs für Netzwerkgeräte benötigen Netzwerktechniker jedoch eine Schnittstelle, um mit den Geräte-APIs programmgesteuert zu interagieren.

Das HTTP- oder HTTPS-Protokoll kann über CLI- und GUI-Tools, wie cURL und Postman, mit den APIs von Netzwerkgeräten interagieren. Diese Interaktionen können Daten abrufen oder Daten ändern. Im Networking-Bereich handelt es sich bei den Daten meist um Gerätekonfigurationen. Diese Tools helfen den Technikern bei der Integration von Netzwerkgeräten in andere Netzwerkmanagementsysteme sowie bei der Verbesserung der Netzwerkeffizienz und der Automatisierung von Networking-Prozessen.

Lassen Sie uns gleich loslegen und mit einer Geräte-API über HTTPS interagieren. Dazu verwenden wir sowohl cURL als auch Postman. Hinweis: Sie müssen die Dokumentation der Geräte-API auf Basis der CRUD-Operationen, die für alle APIs gelten, genau kennen.

Die folgenden Beispiele zeigen verschiedene Szenarien, in denen Netzwerktechniker cURL und die Postman-GUI in einer Sandbox- oder Produktionsumgebung nutzen können.

Zu den Aufgaben gehören die folgenden Punkte:

  • Anmeldung bei einem Router.
  • Abrufen von Schnittstelleninformationen in JSON.
  • Einloggen in eine Sandbox über HTTP.
  • Bearbeiten einer Schnittstelle, um eine IP-Adresse zu ändern.
  • Abschalten einer Schnittstelle.
  • Abrufen eines Python-Code-Snippets über Postman.

Interaktion mit dem Kommandozeilen-Tool „cURL“

1. Anmeldung bei einem Router

Netzwerktechniker müssen sich immer bei Netzwerkgeräten wie Switches und Routern anmelden. Dazu können sie über eine Sandbox-CLI auf ein Remote-Netzwerk zugreifen und sich mit einer IP-Adresse einloggen. Im folgenden Beispiel melden wir uns bei einem Router mit der IP-Adresse 172.31.0.1 über HTTPS mit diesem Befehl an:

curl -k https://172.31.0.1/restconf/ -u "cisco:cisco"

Hier wird durch -k die SSL-Zertifizierung (Secure Sockets Layer) ignoriert, während mit -u der Benutzername inklusive Passwort angegeben wird.

cURL ist ein effektiver Weg, um remote auf Netzwerkgeräte zuzugreifen, da das Utility mehrere Protokolle unterstützt.

2. Abrufen von Schnittstelleninformationen

Der nächste Schritt besteht darin, Schnittstelleninformationen zu sammeln, zum Beispiel die primäre Adresse, die Beschreibung und die Weiterleitungsinformationen. Diese Angaben sind für Netzwerktechniker bei der Analyse und dem Troubleshooting von Netzwerken hilfreich.

Um eine Schnittstelle auf einem Cisco-Gerät zu untersuchen, verwenden Techniker üblicherweise den folgenden Cisco-IOS-Befehl:

'show interface <interface name>'

Das Gleiche lässt sich auch mit cURL erreichen. Eine Möglichkeit besteht darin, die Schnittstelleninformationen in JSON zu erhalten. Derzeit kommt das JSON-Datenformat als Standard für den Datenaustausch zum Einsatz, das von vielen Programmiersprachen und Tools unterstützt wird. JSON ist sowohl für Menschen wie für Maschinen lesbar. Techniker benötigen also möglicherweise Schnittstelleninformationen im JSON-Format, um sie in eine API zu integrieren oder in der Netzwerkautomatisierung zu verwenden.

Techniker können die Schnittstellendaten in JSON erfassen, indem sie einen JSON-Accept-Header hinzufügen, wie der folgende Befehl zeigt:

curl -H "Accept: application/yang-data+json" -k

https://172.31.0.1/restconf/data/cisco-IOS-XE-

native:native/interface/gigabitethernet=1 -u "cisco":"cisco"

Abrufen von Schnittstelleninformationen in JSON.
Abbildung 2: Abrufen von Schnittstelleninformationen in JSON.

3. Ändern der IP-Adresse einer Schnittstelle

Netzwerktechniker sind bei ihren täglichen und monatlichen Aufgaben mit wechselnden Anforderungen konfrontiert. In manchen Fällen müssen sie Router-Konfigurationen bearbeiten oder die IP-Adresse einer Schnittstelle ändern.

Das nächste Beispiel zeigt, wie Admins mit einem cURL-Befehl eine IP-Adresse über die CLI ändern können. Meistens verwenden Netzwerktechniker SSH, um remote auf Geräte zuzugreifen. Doch neue Netzwerkstandards und -Tools bieten Alternativen, wie der folgende cURL-Befehl:

$ curl -X PATCH -H "Content-Type: application/yang-data+json" -H

"Accept: application/yang/data+json" -d '{Cisco-IOS-XE-native:

GigabitEthernet": [{"name": "1", "shutdown": true}]}' -k

https://172.31.0.1/restconf/data/Cisco-IOS-XE-

native:native/interface/GigabitEthernet=1 -u "cisco":"cisco"

Mit diesem cURL-Befehl können Sie die IP-Adresse einer Schnittstelle ändern.
Abbildung 3: Mit diesem cURL-Befehl können Sie die IP-Adresse einer Schnittstelle ändern.

Interaktion mit der Postman-GUI

1. Einloggen in die Cisco-DevNet-Sandbox über HTTP

Netzwerktechniker können die Postman-GUI nutzen, um mit einem der Cisco-Sandbox-Router zu interagieren. Das Tool lässt sich im Vergleich zu cURL meist einfach bedienen.

Einloggen in die Cisco-DevNet-Sandbox.
Abbildung 4: Einloggen in die Cisco-DevNet-Sandbox.

2. Abrufen von Schnittstelleninformationen

Netzwerkadmins müssen unter Umständen den Status einer Schnittstelle überprüfen, um Fehler zu beheben oder die Konfiguration eines Routers zu checken. In diesem Fall können sie die Postman-GUI über das HTTPS-Protokoll verwenden.

Hier nutzen wir das Verb GET, um Informationen abzurufen, beziehungsweise eine Leseaktion (READ) durchzuführen. Dazu dient der folgende Befehl in der Postman-Abfrageleiste:

GET - https://172.31.0.1/restconf/data/Cisco-IOS-XE-native:native/interface

Navigieren Sie in Postman zu den Registerkarten Authorization und Headers, um die entsprechenden Parameter anzugeben und korrekte Informationen zu gewährleisten.

Abrufen von Schnittstelleninformationen in der Cisco-DevNet-Sandbox.
Abbildung 5: Abrufen von Schnittstelleninformationen in der Cisco-DevNet-Sandbox.

3. Bearbeiten der Schnittstelle, um die IP-Adresse zu ändern

Um die Schnittstelle zu bearbeiten, können Netzwerktechniker auf die POST-Methode zurückgreifen.

POST - https://172.31.0.1/restconf/data/Cisco-IOS-XE-native:native/interface

Das folgende Beispiel zeigt die Möglichkeit, die Konfiguration via HTTPS zu bearbeiten, wobei die IP-Adresse der Schnittstelle mithilfe der Postman-GUI geändert wird.

Bearbeiten einer Schnittstelle, um deren IP-Adresse zu ändern.
Abbildung 6: Bearbeiten einer Schnittstelle, um deren IP-Adresse zu ändern.

4. Abschalten einer Schnittstelle

Netzwerkprofis können die PATCH-Methode nutzen, um eine Schnittstelle über das HTTPS-Protokoll und Postman zu ändern oder abzuschalten. Die Registerkarte Body in Postman muss die zum Deaktivieren der Schnittstelle erforderliche Konfiguration im JSON-Format enthalten.

Netzwerktechniker können eine Schnittstelle für einen Router oder Switch deaktivieren, wenn das Team sie beispielsweise eine gewisse Zeit nicht benötigt. Eine Schnittstelle abzuschalten ist so, als ob man eine Tür verschließt, um die Sicherheit zu erhöhen.

Das Beispiel in Abbildung 7 demonstriert, wie sich in Postman Aufgaben ausführen lassen, die Techniker üblicherweise per CLI erledigen. Alles, was man benötigt, sind die Anmeldeinformationen, um über HTTP auf die Sandbox zuzugreifen, wie in der Postman-Abfrageleiste zu sehen ist.

Deaktivieren der Schnittstelle.
Abbildung 7: Deaktivieren der Schnittstelle.

Eine einzigartige Besonderheit von Postman ist die Möglichkeit, ein Python-Code-Snippet abzurufen, um Funktionen direkt in Postman auszuführen. Da Python – dank seiner Benutzerfreundlichkeit, Flexibilität sowie einer Vielzahl von Bibliotheken und Frameworks –eine weitverbreitete Programmiersprache ist, benötigen Techniker häufig den Code für das Management und den Betrieb der Netzwerkinfrastruktur.

Techniker können den Python-Code von Postman aus abrufen, um den manuellen Aufwand zu verringern und die Agilität zu erhöhen, wenn sie ihn entsprechend den Projektanforderungen nutzen.

Abrufen eines Python-Code-Snippets in Postman.
Abbildung 8: Abrufen eines Python-Code-Snippets in Postman.

Vorteile und Schwächen von cURL und Postman

Kein Tool ist perfekt. Sowohl cURL als auch Postman haben ihre Vor- und Nachteile, wenn es darum geht, Netzwerk-APIs zu nutzen. Zum Beispiel eignet sich cURL gut für Anfänger, aber es erlaubt den Benutzern nicht, Anfragen zu speichern. Postman hingegen unterstützt beliebige Programmiersprachen, verbraucht aber viel Speicher.

Abbildung 9 zeigt eine Gegenüberstellung der Vor- und Nachteile von cURL und Postman.

Abbildung 9: Die Vorteile und Nachteile von cURL und Postman im Vergleich.
Abbildung 9: Die Vorteile und Nachteile von cURL und Postman im Vergleich.

In der IT-Fachwelt gibt es zahlreiche Tools, die Netzwerktechniker und Entwickler bei der Interaktion mit Netzwerk-APIs unterstützen. Auch wenn die Tools nicht perfekt sind, können die Techniker das Werkzeug auswählen, das ihren Anforderungen am besten entspricht und ihnen hilft, ihre Arbeit schnell zu erledigen.

Erfahren Sie mehr über Netzwerksoftware