So verwenden Sie HTTPie zur Interaktion mit APIs vom Terminal aus

0
186

HTTPie ist ein HTTP-Client für Ihr Terminal. HTTPie wurde als moderne Alternative zu curl entwickelt und vereinfacht die Interaktion mit APIs, indem es eine unkomplizierte Syntax und automatisch formatierte Ausgabe bietet.

Verfügbar unter Windows, Mac und Linux, sollte die Einrichtung eine unkomplizierte Angelegenheit sein. Die meisten Linux-Distributionen enthalten jetzt HTTPie in ihren Paket-Repositorys, sodass Sie schnell mit apt, dnf oder pacman beginnen können. Es ist auch über Homebrew für Mac-Benutzer und als Python-Paket verfügbar, das über Pip auf allen drei Plattformen bereitgestellt wird (pip install httpie).

Nach der Installation registriert HTTPie die http- und https-Befehle in Ihrem Hülse. Sie haben jetzt eine einfache und ausdrucksstarke Möglichkeit, API-Endpunkte aufzurufen, ohne Ihr Terminal zu verlassen!

Einfache Befehle

Im einfachsten Fall kann HTTPie eine URL übergeben werden, um sofort eine GET-Anfrage zu stellen:

http example.com

Um Daten zu senden, geben Sie das entsprechende HTTP-Verb an und übergeben Sie dann Ihre Schlüssel/Wert-Paare als zusätzliche Befehlszeile Parameter:

http POST example.com foo=bar hello=world Werbung

Standardmäßig werden Daten als JSON mit entsprechenden Anforderungsheadern gesendet. Um stattdessen als Formular einzureichen, übergeben Sie den Parameter -f.

Beachten Sie bei der Verwendung der JSON-Syntax, dass alle Felder normalerweise als Zeichenfolgen gesendet werden. Sie können die Syntax := anstelle von = verwenden, um in den Rohdatenmodus zu wechseln. Ein Parameter examples:='[1, 2]' führt dann dazu, dass der Beispielschlüssel auf ein Array von zwei ganzen Zahlen gesetzt wird.

Header und Cookies

Um einen Anforderungsheader festzulegen, geben Sie den Namen und den Wert des Headers als durch Doppelpunkte getrennte Zeichenfolge an:

http GET example.com Authorization:foobar

HTTPie legt einige Header fest, z. B. User -Agent, standardmäßig. Diese können entfernt werden, indem sie explizit mit einem leeren Wert angegeben werden.

Cookies werden gesetzt, indem eine Zeichenfolge mit den Cookies als durch Doppelpunkte getrennte Werte definiert wird:

http GET example.com “Cookie:foo=bar;hello=world”

Dies ist wirklich nur ein Sonderfall von Einstellen des Cookie-Headers, wodurch Cookies über HTTP gesendet werden.

Arbeiten mit Dateien

Sie können Dateien mit Standard-Shell-Weiterleitungen hochladen und herunterladen :

http POST example.com/upload < ~/example.pdf http GET example.com/download.pdf > ~/download.pdf Anzeige

Sie können Dateien auch als Teil einer HTTP-Formularübermittlung hochladen, indem Sie die spezielle @-Syntax verwenden:

http -f POST example.com/form-with-file hello=”Hello World” myUpload@~/example.pdf < p>Dies verhält sich identisch zu einer HTML-Dateieingabe mit name=”myUpload”. Sie können stattdessen Daten aus einer Datei laden und sie mit der Syntax =@ anstelle von @ in die Anfrage einbetten.

Sitzungen

HTTPie bietet integrierte Unterstützung für persistente Sitzungen. Dadurch können Sie Anforderungskomponenten wie HTTP-Header und Cookies zwischen Anforderungen an denselben Host wiederverwenden.

Sie erstellen und verwenden Sitzungen, indem Sie den Parameter –session festlegen. Geben Sie als Wert den Pfad zu einer Datei an, die zum Speichern Ihrer neuen Sitzung verwendet wird.

http –session=./my-session.json GET example.com Authorization:foobar

Daten, die von Sessions unterstützt werden, wie z. B. der Authorization-Header in der obigen Anfrage, werden nun in der Datei gespeichert. Bei nachfolgenden Anforderungen können Sie jetzt den Authorization-Header – es wird automatisch so eingefügt, wie es in Ihrer Sitzung definiert ist.

Werbung

Anstatt eine Sitzungsdatei anzugeben, können Sie auch einen einfachen Namen verwenden (–session=example ). In diesem Fall speichert HTTPie die Sitzung automatisch in einer intern verwalteten Datei. Jede Sitzung ist an den Host gebunden, von dem sie stammt, daher existieren http –session=example example1.com und http –session=example example2.com unabhängig voneinander.

Ausgabe verwalten

Eine der wesentlichen Verbesserungen von HTTPie gegenüber Dienstprogrammen wie curl ist die automatische Formatierung von Antworten. JSON-Bodys werden besonders gut gehandhabt, mit korrekter Einrückung, alphabetischer Sortierung von Objekten nach ihren Schlüsseln und korrekter Konvertierung von Unicode-Zeichen.

Sie können mit einigen verschiedenen Optionen anpassen, wie die Ausgabe gerendert wird. Das Flag –pretty kann auf –all (Standard), –colors (nur Farben), –format (nur Formatierung) oder –none (um die gesamte Ausgabeverarbeitung zu deaktivieren und die Rohdaten anzuzeigen) gesetzt werden.

Außerdem können Sie das Farbschema mit der — Stil Flagge. Die verfügbaren Schemata sind automatisch (Standard), Standard (verwenden Sie die zugrunde liegenden Stile der Pygments-Bibliothek), fruchtig und der beliebte Monokai.

Sie müssen sich keine Gedanken über die Standardformatierung machen, wenn Sie die Ausgabe in eine Datei umleiten. HTTPie erkennt, dass es umgeleitet wird, und leitet die Rohdaten einfach weiter, ohne eine Formatierung anzuwenden. Dies bedeutet auch, dass binäre Antworten, die normalerweise nie an das Terminal gesendet werden, in Dateien geleitet werden können.

Konfigurationsdatei

HTTPie unterstützt eine Grundkonfiguration Datei, die zum Definieren von Standardeinstellungen verwendet werden kann. Diese werden auf alle von Ihnen gestellten Anfragen angewendet. Die Datei sollte unter Linux/Mac unter ~/.config/httpie/config.json und unter Windows unter %APPDATA%httpieconfig.json gespeichert werden.

Werbung

Es wird ein einzelner Konfigurationsschlüssel, default_options, unterstützt, der ein grundlegendes Array von Parametern akzeptiert, die an ausgeführte HTTPie-Befehle angehängt werden:

{ "default_options": [ "Authorization:foobar", "–pretty=none" , "–style=monokai" ] }

Jede Option, die von der HTTPie-Befehlszeilenschnittstelle unterstützt wird, kann eingeschlossen werden. Sie können Ihre Standardoptionen überschreiben, indem Sie sie jedes Mal, wenn Sie HTTPie ausführen, mit einem neuen Wert definieren.

Schlussfolgerung

HTTPie ist ein funktionsreiches Tool, das HTTP-APIs bereitstellt zu Ihrem Endgerät. Es ist eine moderne Alternative zu Unix-Heftklammern wie curl, die für den regelmäßigen Gebrauch von Entwicklern und Testern entwickelt wurde. Obwohl die Syntax manchmal umständlich sein kann, ist sie im Allgemeinen ausdrucksstark und einprägsam.

Es lohnt sich, sich die Zeit zu nehmen, die offizielle Dokumentation zu lesen, wenn Sie mehr erfahren möchten über HTTPie. Die gesamte Entwicklung erfolgt offen auf GitHub, mit Unterstützung von Gitter und StackOverflow.