Wer schon einmal mit dem HTTP-Client aus der IntelliJ IDEA Ultimate Edition gearbeitet hat, wird die Vorzüge kennen HTTP-Anfragen direkt aus dem Code-Editor heraus ausführen zu können. Eine GET-Anfrage kann dann mit der einfachen Zeile:
GET http://localhost:8080/project
ausgeführt werden.
Da nicht jeder eine Ultimate Lizenz von IntelliJ IDEA besitzt, war ich auf der Suche nach einer Alternative. Ich fand bei meiner Recherche einige Clients, die vorwiegend als Plugin bzw. Extension für eine IDE zur Verfügung standen. Ich wollte jedoch möglichst ein Kommandozeilenwerkzeug mit dem man aus einer Datei ebenso wie in IntelliJ Abfragen ausführen konnte. Letzendlich bin ich auf httpyac gestoßen, ein Open Source Projekt mit einem CLI.
Die Installation kann mit Hilfe von npm oder yarn durchgeführt werden. Die Ausführung einer HTTP-Anfrage kann dann über den Befehl httpyac send <datei> erfolgen.
$ npm install -g httpyac
# oder
$ yarn global add httpyac
Wir erstellen eine Datei requests.http mit folgendem Inhalt:
GET http://localhost:8080/project
Die Ausführung erfolgt nun über den Befehl:
$ httpyac send requests.http
Da in der Datei mehr als eine Anfrage liegen kann, werden wir nach dem Start noch gefragt, ob wir alle oder nur bestimmte Abfragen ausführen wollen. Um über die Kommandozeile bestimmte Abfragen direkt auswählen zu können, kann beim Aufruf noch der Parameter -l oder -n mitgegeben werden. Mit dem Parameter -l können wir die Zeile angeben in der die Abfrage steht. Komfortabler ist die Verwendung von Namen für unsere Abfragen. Hierzu erweitern wir unsere Abfrage folgendermaßen:
# @name get-all
GET http://localhost:8080/project
Damit haben wir der Abfrage den Namen get-all gegeben und können ihn mit dem Parameter -n nutzen.
Schauen wir uns als nächstes an, wie wir Daten senden können. Dazu erweitern wir unsere Datei um folgende Einträge:
# @name post-new
POST http://localhost:8080/project
Content-Type: application/json
{
"name": "Neues Projekt",
"description": "Wieder ein tolles Projekt"
}
Jetzt können wir den Aufruf mit dem Parameter -n ausführen:
$ httpyac send -n post-new requests.http
Bisher haben wir in den Abfragen nur statische Daten drin. Wir können diese Daten natürlich auch aus einer separaten Datei importieren. Dazu können wir die Json-Daten auslagern und folgende Zeile statt den Json nutzen:
< ./data.json
Zum Schluss schauen wir uns noch an, wie wir Variablen in unserer Anfrage nutzen können. Dazu erweitern wir unsere Datei um folgenden Eintrag:
# @name get-by-id
GET http://localhost:8080/project/{{id}}
Wir können den ersten Eintrag aus unserer Projektliste dann mit dem Befehl:
$ httpyac send -n get-by-id requests.http --var id=1
abrufen. Wichtig ist zu beachten, dass die Variablen immer ganz hinten in der Befehlszeile stehen. Neben den üblichen HTTP-Methoden wie GET, POST, PUT, DELETE usw. werden auch weitere Anfragen wie GraphQL, SOAP oder gRPC unterstützt. Ein Blick lohnt sich auf jeden Fall.
Weitere Informationen findet ihr unter: https://httpyac.github.io. Das Projekt zum Ausprobieren habe ich euch auf Github abgelegt.







