Come usare HTTPie per interagire con le API dal terminale

Contenuti

HTTPie è un client HTTP per il tuo terminale. Progettato come alternativa moderna a curl, HTTPie semplifica l'interazione con le API offrendo una sintassi semplice e un output formattato automaticamente.

Disponibile in Windows, Mac e Linux, ottenere la configurazione dovrebbe essere una cosa semplice. La maggior parte delle distribuzioni Linux ora include HTTPie nei propri repository di pacchetti, così puoi apt, dnf oh pacman cominciare. È anche abilitato tramite Homebrew per utenti Mac., e come pacchetto Python fornito tramite Pip su tutte e tre le piattaforme (pip install httpie).

Una volta installato, HTTPie registra il http e https comandi nella tua shell. Ora hai un modo semplice ed espressivo per chiamare gli endpoint API senza lasciare il tuo terminale!!

Comandi di base

Nella sua forma più semplice, HTTPie può essere passato un URL per fare a GET applicazione:

http esempio.com

Per inviare dati, specifica il verbo HTTP appropriato e poi passa le tue coppie di chiavi / valore come parametri aggiuntivi della riga di comando:

http POST esempio.com foo=bar ciao=mondo

Per impostazione predefinita, i dati vengono inviati come JSON con intestazioni di richiesta appropriate. Per inviarlo come modulo, passa il -f parametro.

Quando si utilizza la sintassi JSON, nota che tutti i campi vengono regolarmente inviati come stringhe. Puoi usare il := sintassi invece di = per passare alla modalità dati grezzi. Un parametro examples:='[1, 2]' allora risulterà nel examples la chiave è impostata su un array di due interi.

Intestazioni e cookie

Per determinare un'intestazione della richiesta, specificare il nome e il valore dell'intestazione come una stringa separata da due punti:

http GET example.com Authorization:foobar

HTTPie establece algunos encabezados, Che cosa User-Agent, predefinito. Estos se pueden borrar especificándolos explícitamente con un valor vacío.

Las cookies se establecen definiendo una cadena con las cookies como valores delimitados por dos puntos:

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

In realtà, este es solo un caso especial de determinar el Cookie intestazione, que es cómo se envían las cookies a través de HTTP.

Trabajar con archivos

Puede cargar y descargar archivos usando redireccionamientos de shell estándar:

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

Además puede cargar archivos como parte de un envío de formulario HTTP a través de el uso de @ sintassi:

http -f POST example.com/form-with-file hello="Ciao mondo" myUpload@~/example.pdf

Ciò agirà in modo identico all'immissione di un file HTML con name="myUpload". Anziché, puoi caricare i dati da un file e incorporarli nella richiesta utilizzando il file =@ sintassi, invece di @.

Sessioni

HTTPie ha il supporto integrato per sessioni persistenti. Questi consentono di riutilizzare i componenti della richiesta, come intestazioni HTTP e cookie, tra richieste effettuate allo stesso host.

È possibile creare e utilizzare sessioni configurando il file --session parametro. Come valore, specificare il percorso di un file che verrà utilizzato per salvare la nuova sessione.

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

Dati supportati dalle sessioni, Come la Authorization intestazione nella richiesta precedente, ora verrà salvato nel file. Nelle richieste successive, ora puoi saltare il Authorization intestazione: verranno automaticamente inclusi come definito nella sessione.

Invece di specificare un file di sessione, puoi anche usare un nome semplice (--session=example). In questa circostanza, HTTPie salverà automaticamente la sessione in un file gestito internamente. Ogni sessione è vincolata all'host da cui ha origine, affinché http --session=example example1.com e http --session=example example2.com esisteranno indipendentemente l'uno dall'altro.

Gestisci output

Uno dei miglioramenti significativi di HTTPie rispetto a utility come curl è la formattazione della tua risposta automatica. I corpi JSON sono concretamente ben gestiti, con una rientranza adeguata, classificazione alfabetica degli oggetti in base alle loro chiavi e corretta conversione dei caratteri Unicode.

Puoi personalizzare il modo in cui l'output viene elaborato utilizzando alcune opzioni diverse. il --pretty la bandiera può essere impostata su --all (predefinito), --colors (solo colori), --format (solo formattazione) oh --none (per disabilitare tutta l'elaborazione dell'output e visualizzare i dati grezzi).

Allo stesso tempo, puoi cambiare lo schema dei colori usando il --style bandiera. Gli schemi disponibili sono auto (il valore predefinito), default (usa gli stili della libreria Pygments sottostanti), fruity e il popolare monokai.

Non devi preoccuparti del formato predefinito quando reindirizzi l'output a un file. HTTPie riconoscerà che viene reindirizzato e si limiterà a reindirizzare i dati senza applicare alcuna formattazione. Questo significa anche che le risposte binarie, che regolarmente non vengono mai rilasciati al terminale, può essere convogliato in file.

File di configurazione

HTTPie supporta un file di configurazione di base che può essere utilizzato per impostare la configurazione predefinita. Questi si applicheranno a tutte le richieste che fai. Il file dovrebbe essere salvato in ~/.config/httpie/config.json en Linux / Mac e %APPDATA%httpieconfig.json in Windows.

È supportata una singola chiave di configurazione, default_options, che accetta una serie di parametri di base da aggiungere ai comandi HTTPie che esegui:

{
    "default_options": [
        "Autorizzazione:foobar",
        "--bella=nessuna",
        "--stile=monokai"
    ]
}

È possibile includere qualsiasi opzione compatibile con l'interfaccia della riga di comando HTTPie. Puoi sovrascrivere le tue opzioni predefinite impostandole su un nuovo valore ogni volta che esegui HTTPie.

conclusione

HTTPie è uno strumento completo che porta le API HTTP sul tuo terminale. È un'alternativa moderna ai prodotti Unix di base come curl che è progettato per l'uso regolare da parte di sviluppatori e tester. Anche se a volte la sintassi può essere complicata, nel complesso è espressivo e memorabile.

È importante notare il tempo necessario per leggere il documentazione ufficiale se stai cercando di saperne di più su HTTPie. Tutto lo sviluppo avviene all'aperto in GitHub, con il supporto fornito in Griglia e Stack overflow.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.