Hur man använder HTTPie för att interagera med API: er från terminalen

0
152

HTTPie är en HTTP -klient för din terminal. Utformad som ett modernt alternativ till curl, förenklar HTTPie interaktionen med API: er genom att erbjuda en enkel syntax och automatiskt formaterad utmatning.

Tillgängligt på Windows, Mac och Linux, installationen bör vara en enkel sak. De flesta Linux -distributioner inkluderar nu HTTPie i sina paketförråd, så att du snabbt kan apt, dnf eller pacman att börja. Det är också tillgängligt via Homebrew för Mac -användare och som ett Python -paket som levereras via Pip på alla tre plattformarna (pip installera httpie).

När det är installerat registrerar HTTPie kommandona http och https i din skal. Du har nu ett enkelt och uttrycksfullt sätt att ringa API-slutpunkter utan att lämna din terminal!

Basic Commands

På sitt enklaste sätt kan HTTPie skickas till en URL för att omedelbart göra en GET-begäran:

http example.com

För att skicka data anger du lämpligt HTTP-verb och skickar sedan dina nyckel-/värdepar som ytterligare kommandorad parametrar:

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

Som standard skickas data som JSON med lämpliga förfrågningsrubriker. Om du vill skicka som ett formulär i stället skickar du parametern -f.

Tänk på att alla fält normalt skickas som strängar när du använder JSON -syntaxen. Du kan använda: = syntaxen istället för = för att växla till rådata -läge. Ett parameterexempel: = '[1, 2]' resulterar sedan i att exempelnyckeln ställs in på en rad med två heltal.

Rubriker och cookies

För att ställa in en begäranhuvud, ange rubrikens namn och värde som en kolonavgränsad sträng:

http GET example.com Authorization: foobar

HTTPie ställer in några rubriker, till exempel Användare -Agent, som standard. Dessa kan tas bort genom att uttryckligen ange dem med ett tomt värde.

Cookies ställs in genom att definiera en sträng med kakorna som kolonavgränsade värden:

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

Detta är egentligen bara ett speciellt fall för att ställa in cookien header, vilket är hur cookies skickas över HTTP.

Working With Files

Du kan ladda upp och ladda ner filer med standardskalomdirigeringar:

http POST exempel.com/upload & lt; ~/example.pdf http GET example.com/download.pdf & gt; ~/download.pdf Annonsering

Du kan också ladda upp filer som en del av ett HTTP-formulär med hjälp av den speciella @ syntaxen:

http -f POST example.com/form-with-file hello = “Hello World” myUpload@~/example.pdf < p> Detta fungerar på samma sätt som en HTML -filinmatning med name = “myUpload”. Du kan istället ladda in data från en fil och bädda in den i begäran med hjälp av = @ syntaxen, istället för @.

Sessioner

HTTPie har inbyggt stöd för ihållande sessioner. Dessa låter dig återanvända begäranskomponenter, till exempel HTTP -rubriker och cookies, mellan begäranden som görs till samma värd.

Du skapar och använder sessioner genom att ställa in –session -parametern. Som dess värde anger du sökvägen till en fil som ska användas för att lagra din nya session.

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

Data som stöds av sessioner, t.ex. auktoriseringsrubriken i ovanstående begäran, sparas nu i filen. Vid efterföljande förfrågningar kan du nu utelämna auktoriseringsrubriken – det inkluderas automatiskt som det definieras i din session.

Annons

I stället för att ange en sessionsfil kan du också använda ett enkelt namn (–session = exempel ). I detta fall kommer HTTPie automatiskt att spara sessionen i en internt hanterad fil. Varje session är knuten till värden den kommer från, så http –session = exempel exempel1.com och http –session = exempel exempel2.com kommer att existera oberoende av varandra.

Hantera utdata

En av HTTPies betydande förbättringar jämfört med verktyg som curl är dess automatiska formatering av svar. JSON-kroppar är särskilt välskötta, med korrekt inryckning, alfabetisk sortering av objekt med sina nycklar och korrekt konvertering av Unicode-tecken.

Du kan anpassa hur utdata återges med några olika alternativ. Den -vackra flaggan kan ställas in på –all (standard), –färger (endast färger), –format (endast formatering) eller –none (för att inaktivera all utdatabehandling och se rådata).

Dessutom kan du ändra färgschemat med flaggan –style. De tillgängliga scheman är auto (standard), standard (använd de underliggande Pygments bibliotekstilarna), fruktiga och populära monokai.

Du behöver inte oroa dig för standardformateringen när du omdirigerar utdata till en fil. HTTPie kommer att inse att den omdirigeras och helt enkelt leda rådata utan att använda någon formatering. Detta innebär också att binära svar, som normalt aldrig sänds till terminalen, kan läggas i filer.

Configuration File

HTTPie stöder en grundläggande konfiguration fil som kan användas för att definiera standardinställningar. Dessa tillämpas på alla förfrågningar du gör. Filen ska sparas på ~/.config/httpie/config.json på Linux/Mac och %APPDATA % httpie config.json i Windows.

Annonsering

En enda konfigurationsnyckel stöds, default_options, som accepterar en grundläggande uppsättning parametrar för att lägga till HTTPie-kommandon som du utför:

{& quot; default_options & quot ;: [& quot; Authorization: foobar & quot ;, & quot;-pretty = none & quot; , & quot;-style = monokai & quot; ]}

Alla alternativ som stöds av HTTPies kommandoradsgränssnitt kan inkluderas. Du kan åsidosätta dina standardalternativ genom att definiera dem med ett nytt värde varje gång du kör HTTPie.

Slutsats

HTTPie är ett verktyg med funktioner som ger HTTP-API: er till din terminal. Det är ett modernt alternativ till Unix -häftklamrar som curl som är utformat för regelbunden användning av utvecklare och testare. Även om syntaxen ibland kan vara besvärlig är den generellt uttrycksfull och minnesvärd.

Det är värt att ta sig tid att läsa den officiella dokumentationen om du vill lära dig mer om HTTPie. All utveckling sker i det öppna på GitHub, med stöd på Gitter och StackOverflow.