A HTTPie használata az API-kkal való interakcióhoz a terminálról – CloudSavvy IT

Avatar Gadam | 2021.01.14. 29 Views 0 Likes 0 Ratings

29 Views 0 Ratings Rate it

[ad_1]

Képernyőkép a HTTPie példakérésről

HTTPie egy HTTP kliens a terminálodhoz. Modern alternatívája a curlA 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).

A HTTPie JSON kimenetének képernyőképe

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.

[ad_2]
Source link