Come utilizzare HTTPie per interagire con le API dal terminale

0
18

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 su Windows, Mac e Linux, la configurazione dovrebbe essere un'operazione semplice. La maggior parte delle distribuzioni Linux ora include HTTPie nei loro repository di pacchetti, quindi puoi iniziare rapidamente apt, dnf o pacman. È disponibile anche 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 i comandi http e https nel tuo guscio. 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ò ricevere un URL per effettuare immediatamente una richiesta GET:

http example.com

Per inviare dati, specificare il verbo HTTP appropriato e quindi passare le coppie chiave/valore come riga di comando aggiuntiva parametri:

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

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

Quando si utilizza la sintassi JSON, tenere presente che tutti i campi vengono normalmente inviati come stringhe. È possibile utilizzare la sintassi := invece di = per passare alla modalità dati non elaborati. Un parametro esempi:='[1, 2]' risulterà quindi nell'impostazione della chiave degli esempi su un array di due numeri interi.

Intestazioni e cookie

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

http GET example.com Authorization:foobar

HTTPie imposta alcune intestazioni, come Utente -Agente, per impostazione predefinita. Questi possono essere rimossi specificandoli esplicitamente con un valore vuoto.

I cookie vengono impostati definendo una stringa con i cookie come valori delimitati da due punti:

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

Questo è davvero solo un caso speciale di impostando l'intestazione Cookie, che è il modo in cui i cookie vengono inviati su HTTP.

Lavorare con i file

Puoi caricare e scaricare file utilizzando i reindirizzamenti standard della shell :

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

Puoi anche caricare file come parte dell'invio di un modulo HTTP utilizzando la speciale sintassi @:

http -f POST example.com/form-with-file hello=”Hello World” myUpload@~/example.pdf < p>Questo agirà in modo identico a un input di file HTML con name=”myUpload”. Puoi invece caricare i dati da un file e incorporarli nella richiesta usando la sintassi =@, invece di @.

Sessioni

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

Crea e utilizza le sessioni impostando il parametro –session. Come valore, specifica il percorso di un file che verrà utilizzato per memorizzare la tua nuova sessione.

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

I dati supportati dalle sessioni, come l'intestazione dell'autorizzazione nella richiesta di cui sopra, verranno ora salvati nel file. Nelle richieste successive, ora puoi omettere l'intestazione Autorizzazione – verrà incluso automaticamente così come definito nella tua sessione.

Annuncio

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

Gestione dell'output

Uno dei miglioramenti significativi di HTTPie rispetto a utility come curl è la formattazione automatica delle risposte. I corpi JSON sono particolarmente ben gestiti, con indentazione adeguata, ordinamento alfabetico degli oggetti in base alle loro chiavi e conversione corretta dei caratteri Unicode.

Puoi personalizzare la modalità di rendering dell'output utilizzando alcune opzioni diverse. Il flag –pretty può essere impostato su –all (predefinito), –colors (solo colori), –format (solo formattazione) o –none (per disabilitare tutta l'elaborazione dell'output e vedere i dati grezzi).

Inoltre, puoi cambiare lo schema dei colori usando — bandiera di stile. Gli schemi disponibili sono auto (predefinito), predefinito (usa gli stili della libreria Pygments sottostanti), fruttato e il popolare monokai.

Non è necessario preoccuparsi della formattazione predefinita quando si reindirizza l'output in un file. HTTPie riconoscerà che viene reindirizzato e semplicemente reindirizza i dati grezzi senza applicare alcuna formattazione. Ciò significa anche che le risposte binarie, che normalmente non vengono mai inviate al terminale, possono essere reindirizzate nei file.

File di configurazione

HTTPie supporta una configurazione di base file che può essere utilizzato per definire le impostazioni predefinite. Questi verranno applicati a tutte le richieste effettuate. Il file dovrebbe essere salvato in ~/.config/httpie/config.json su Linux/Mac e %APPDATA%httpieconfig.json su Windows.

Annuncio

È 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": [ "Authorization:foobar", "–pretty=none" , "–style=monokai" ] }

È possibile includere qualsiasi opzione supportata dall'interfaccia della riga di comando di HTTPie. Puoi sovrascrivere le tue opzioni predefinite definendole con un nuovo valore ogni volta che esegui HTTPie.

Conclusione

HTTPie è uno strumento ricco di funzionalità che offre API HTTP al tuo terminale È un'alternativa moderna alle graffette Unix come l'arricciatura, progettata per l'uso regolare da parte di sviluppatori e tester. Anche se a volte la sintassi può essere complicata, è generalmente espressiva e memorabile.

Vale la pena dedicare del tempo a leggere la documentazione ufficiale se stai cercando di saperne di più su HTTPie. Tutto lo sviluppo avviene all'aperto su GitHub, con il supporto fornito su Gitter e StackOverflow.