HTTPie egy HTTP kliens a terminálodhoz. Modern alternatívája a curl
A HTTPie egyszerű szintaxist és automatikusan formázott kimenetet kínál egyszerűsítve az API-kkal való interakciót.
Elérhető Windows, Mac és Linux rendszereken, beállítást kapok egyenes ügynek kell lennie. A legtöbb Linux disztribúció mostantól tartalmazza a HTTPie-t a csomagtáraiban, így gyorsan apt
, dnf
vagy pacman
kezdeni. Ez elérhető a Mac-felhasználók számára a Homebrew-n keresztül, valamint Python-csomagként, amelyet mind a három platformon Pip-en szállítanak (pip install httpie
).
A telepítés után a HTTPie regisztrálja a http
és https
parancsokat a héjában. Most már egyszerű és kifejező módon hívhatja meg az API végpontokat anélkül, hogy elhagyná a terminált!
Alapparancsok
A legegyszerűbb, hogy a HTTPie-nek át lehet adni egy URL-t, amely azonnal a GET
kérés:
http example.com
Adatok küldéséhez adja meg a megfelelő HTTP igét, majd adja át a kulcs / érték párokat további parancssori paraméterként:
http POST example.com foo=bar hello=world
Alapértelmezés szerint az adatokat JSON formátumban küldik a megfelelő kérés fejlécekkel. Ha űrlapként szeretné elküldeni, adja át a -f
paraméter.
A JSON-szintaxis használatakor vegye figyelembe, hogy az összes mezőt általában karakterláncként küldik el. Használhatja a :=
szintaxis helyett =
nyers adat módra váltáshoz. Egy paraméter examples:='[1, 2]'
ezután a examples
a kulcs két egész tömbre van állítva.
Fejlécek és sütik
A kérés fejlécének beállításához adja meg a fejléc nevét és értékét kettősponttal elválasztott karakterláncként:
http GET example.com Authorization:foobar
A HTTPie beállít néhány fejlécet, például User-Agent
, alapértelmezés szerint. Ezeket úgy lehet eltávolítani, hogy kifejezetten megadjuk őket üres értékkel.
A cookie-kat úgy állítják be, hogy egy karakterláncot definiálnak a sütikkel kettőspont által elválasztott értékként:
http GET example.com "Cookie:foo=bar;hello=world"
Ez valójában csak a Cookie
fejléc, így küldik a cookie-kat a HTTP-n keresztül.
Munka a fájlokkal
Fájlokat feltölthet és letölthet a szokásos shell-átirányításokkal:
http POST example.com/upload < ~/example.pdf http GET example.com/download.pdf > ~/download.pdf
A speciális segítségével fájlokat is feltölthet egy HTTP-űrlap elküldés részeként @
szintaxis:
http -f POST example.com/form-with-file hello="Hello World" myUpload@~/example.pdf
Ez ugyanúgy fog működni, mint egy HTML fájl bemenete a name="myUpload"
. Ehelyett betölthet adatokat egy fájlból, és beágyazhatja a kérésbe a =@
szintaxis helyett @
.
Munkamenetek
A HTTPie beépített támogatást nyújt a tartós munkamenetekhez. Ezek lehetővé teszik a kérelem-összetevők, például a HTTP-fejlécek és a cookie-k újrafelhasználását az ugyanazon gazdagép felé küldött kérések között.
A munkameneteket a --session
paraméter. Értékként adja meg az új munkamenet tárolására használt fájl elérési útját.
http --session=./my-session.json GET example.com Authorization:foobar
A munkamenetek által támogatott adatok, például a Authorization
A fenti kérés fejlécét a fájl menti. Későbbi kérések esetén most elhagyhatja a Authorization
fejléc – automatikusan bekerül a munkamenetben megadottak szerint.
A munkamenetfájl megadása helyett használhat egyszerű nevet is (--session=example
). Ebben az esetben a HTTPie automatikusan elmenti a munkamenetet egy belső kezelésű fájlba. Minden munkamenet ahhoz a gazdagéphez van kötve, ahonnan származik, tehát http --session=example example1.com
és http --session=example example2.com
egymástól függetlenül léteznek.
Kimenet kezelése
A HTTPie egyik jelentős fejlesztése az olyan segédprogramokkal szemben, mint a curl
a válaszok automatikus formázása. A JSON törzsek különösen jól kezelhetőek, megfelelő behúzással, az objektumok ábécé szerinti rendezésével kulcsaik alapján, valamint az Unicode karakterek helyes konvertálásával.
Testreszabhatja a kimenet megjelenítésének módját néhány különböző lehetőség segítségével. A --pretty
zászló beállítható --all
(alapértelmezett), --colors
(csak színek), --format
(csak formázás) vagy --none
(az összes kimeneti feldolgozás letiltásához és a nyers adatok megtekintéséhez).
Ezenkívül megváltoztathatja a színvilágot a --style
zászló. A rendelkezésre álló rendszerek: auto
(az alapértelmezett), default
(használja a mögöttes Pygments könyvtárstílusokat), fruity
és a népszerű monokai
.
A kimenet fájlba történő átirányításakor nem kell aggódnia az alapértelmezett formázás miatt. A HTTPie felismeri, hogy átirányításra kerül, és egyszerűen formázás nélkül továbbítja a nyers adatokat. Ez azt is jelenti, hogy a bináris válaszok, amelyeket általában soha nem bocsátanak ki a terminálra, beilleszthetők fájlokba.
Konfigurációs fájl
A HTTPie támogatja az alapvető konfigurációs fájlokat, amelyek felhasználhatók az alapértelmezett beállítások megadására. Ezeket az összes Ön által benyújtott kérelemre alkalmazzuk. A fájlt a következő helyre kell menteni: ~/.config/httpie/config.json
Linux / Mac és %APPDATA%httpieconfig.json
Windows rendszeren.
Egyetlen konfigurációs kulcs támogatott, default_options
, amely elfogadja az alapvető paramétertömböt a végrehajtandó HTTPie parancsokhoz:
{ "default_options": [ "Authorization:foobar", "--pretty=none", "--style=monokai" ] }
Bármely opció, amelyet a HTTPie parancssori felülete támogat, felvehető. Az alapértelmezett beállításokat felülírhatja úgy, hogy a HTTPie futtatásakor minden alkalommal új értékkel definiálja azokat.
Következtetés
HTTPie egy funkciókkal teli eszköz, amely HTTP API-kat hoz a terminálodhoz. Ez egy modern alternatíva a Unix kapcsokhoz curl
amelyet fejlesztők és tesztelők rendszeresen használnak. Bár a szintaxis időnként nehézkes lehet, általában kifejező és emlékezetes.
Érdemes időt szánni a hivatalos dokumentáció ha többet szeretne megtudni a HTTPie-ről. Minden fejlődés a szabadban történik GitHub, a nyújtott támogatással Gitter és StackOverflow.