REST-API Befehle über Visual Studio Code und Thunder Client
1. Einleitung
Diese Anleitung zeigt, wie man über das Plug-In Thunder Client in Visual Studio Code HTTP-Befehle an einen REST-API Client schickt.
2. Visual Studio Code Plug-In "Thunder Client"
Achtung:
Grundsätzlich kann im ganzen Plug-In keine der Aktionen rückgängig gemacht werden.
Änderungen sind erst nach Speichern (STRG + S) gültig.
2.1. Installation Plug-In

Auf der linken Seite in den Reiter "Extensions" klicken und nach "Thunder Client" suchen.
Durch den blauen Button "Install" wird die Erweiterung installiert und erscheint ebenfalls links als eigener Reiter.
Sollte der Reiter für den Thunder Client mal nicht erscheinen, liegt es beim Neustart am Restricted Mode:
Auf das Feld Restricted Mode klicken und danach unter "Trust" bestätigen
2.2. Verwendung

- Liste der letzten Befehle
- Bibliothek von Befehlen: Collections
Hier können vorgefertigte Befehle in Pakete importiert oder exportiert werden.

Achtung: In der kostenlosen Version können nur 50 Befehle je Collection enthalten sein.
- Typ des Befehls: GET, POST, DELETE, etc.

- Anpassung Header
In das frei Feld können zusätzliche Header Informationen hinzugefügt werden:
Bsp.: Cookie in den Header-Informationen mitschicken:
- Authentifizierung
Hier können zusätzliche informationen unterschiedlicher Authentifizierungsverfahren
Bsp.: Bearer Token
Bsp.: Basic Authetification
Wird im Header im Format usaername:password im Format Base64 übertragen.
Achtung: kann nicht zum User login verwendet werden!
- Body informationen mit unterschiedlichen Datenformaten

Mitschicken von Dateien:
- Absenden des Befehls
- Antwort des Befehls
Hier als Beispiel die Anwort einen Login vorganges.
1. Direkte Antwort:
2. Header Informationen
3. Cookies (separiert):
4. Anfrage analysieren:
3. Variablen
Es gibt drei Arten von Variablen:
Pfad Variablen: {Variable}
Umgebungsvariablen: {{Variable}}
Systemvariablen: {{#Variable}}
Im Reiter Env können Umgebungsvariablen definiert werden.
Bsp.: Login mit Umgebungsvariablen
- Einloggen und Bearer-Token abholen

- Umgebungsvariable anpassen:

Achtung: Speichern nicht vergessen! - Variable in POST-Befehl verwenden:

Achtung:
Die Werte der Variablen werden der Reihe nach zugeordnet.
Ist eine Variable mehrfach vorhanden (keine Überprüfung des Editors!) wird immer der Wert der untersten Variablen zugewiesen,
Bsp.: Hier wird der Variablen PortNumber der Wert 1 zugewiesen.
3.1. Pfad-Variablen
Pfad-Variablen werden zwischen einer einfache geschweiften Klammer dargestellt.
Im Reiter Query können diese einem Befehl zugeordnet werden.

3.2. Umgebungsvariablen
Im Reiter Env können Umgebungsvariablen definiert werden.
Bsp.: Login mit Umgebungsvariablen
- Einlogen und Bearer Token abholen

- Umgebungsvariable anpassen:

Achtung: Speichern nicht vergessen! - Variable in POST-Befehl verwenden:

Achtung:
Die Werte der Variablen werden der Reihe nach zugeordnet.
Ist eine Variable mehrfach vorhanden (keine Überprüfung des Editors!) wird immer der Wert der untersten Variablen zugewiesen,
Bsp.: Hier wird der Variablen PortNumber der Wert 1 zugewiesen.
Es kann immer nur eine Variablenlisten Aktiv sein.
Am unteren Rand der Entwicklungsumgebung kann zwsichen den Variablentabellen getauscht werden:
3.3. Systemvariablen
Systemvariablen werden in einer doppelten geschweiften Klamme dargestellt und besitzen zusätzlich eine Raute {{#Variable}}.
Beispiel: Setzen der Systemzeit durch Systemvariable
Beispiel: Zufällig generierte Werte für Namen, String oder E-Mail
3.4. Automatisierung von Abläufen
Es wird zwischen Pre-Requests und POST-Request unterschieden, die bedingt automatisch abgesetzt werden können.
Ebenso können Javascript-Programme und ebenfalls vorher oder nachher abgespielt werden.
Pre-Request sind Befehle und Auforderungen, die vor dem Abschicken des eigentlichen Befehls abgeschickt werden können.
Beispiel: Abfrage, ob eingeloggt. Falls nicht wird Login ausgeführt.
Beispiel Scripting:
Post-Request werden nach dem Ausführen des eigentlichen Befehls abgeschickt oder abgearbeitet.
Beispiel: Setzen von Variablen.

Beispiel: Befehlsantwort überprüfen.
Beispiel Scripting: Antwort auswerten.
Scripting
4. Collections
Über Import können vorgefertigte Collections oder auch YAML-Dateien eingefügt werden.
Jede Collection kann mit globalen Einstellungen versehen werden, welche sich auf jeden Befehl und Ordner auswirken.
Unter Options kann ein Basispfad angegeben werden, der vor jeden Befehl der Collection vorgesetzt wird.
Hier werden BaseURL und BasePath hinterlegt.
Bsp.:
192.168.1.1/api/balluff/v2
Der Rest des spezifischen Befehls wird durch die jeweilige Befehlseingabe definiert.

Werden externe APIs über z.B. eine YAML-Datei geladen, kann es sein, dass Variablen im Befehl angepasst werden müssen:
Wie hier muss ein weiteres {} eingefügt werden, sodass diese als Variable der Env-Tabelle erkannt wird.
Achtung: Jede Collection kann in der freien Version nur 50 Befehle enthalten!
Disclaimer
Die hier unentgeltlich bereitgestellte technische Information zu Ihrer Anfrage basiert auf dem von BALLUFF vorliegenden Kenntnisstand um Sie bestmöglich bei Ihrer technischen Fragestellung bzw. Anwendung zu unterstützen und Lösungsansätze aufzuzeigen.
Nachdem die technische Information unentgeltlich zur Verfügung gestellt wird, ist die Sach- und Rechtsmängelhaftung von BALLUFF ausgeschlossen, es sei denn, es liegt eine vorsätzliche oder grob fahrlässige Pflichtverletzung von BALLUFF oder Arglist auf Seiten von BALLUFF vor. Diesbezüglich haftet BALLUFF auf Schadenersatz wegen Mängeln der technischen Information oder wegen der Verletzung sonstiger vertraglicher oder außervertraglicher Pflichten nur bei Vorsatz oder grober Fahrlässigkeit. Die vorstehende Haftungsbeschränkung gilt nicht bei Arglist, bei Verletzungen des Lebens, des Körpers oder der Gesundheit, bei der Übernahme einer Garantie sowie bei der Haftung nach dem Produkthaftungsgesetz. Eine weitergehende Haftung von BALLUFF ist ausgeschlossen.
Prüfen Sie vor dem Einsatz in Anlagen und Maschinen, ob die hier bereitgestellte, unentgeltliche Information für Ihre Anwendung geeignet ist. Mit der Nutzung der hier unentgeltlich vorgelegten Informationen erkennen Sie diese Haftungsregelung an.