Httpie — insan tərəfindən oxuna bilən sintaksisə və rəngli çıxışa malik, API-ni komanda sətrindən sınaqdan keçirmək üçün nəzərdə tutulmuş konsol HTTP-müştərisi. Alət intuitiv sintaksisdən istifadə edir: http GET https://api.example.com/users başlıqlar və sorğu gövdəsi üçün bayraqlar göstərməyə ehtiyac olmadan. Httpie CLI Documentation (2026)-ya görə, util standart olaraq JSON, sessiyalar, autentifikasiya və plaginləri dəstəkləyir.
Əsas məqamlar
Httpie (və ya HTTPie) — Python dilində yazılmış konsol utilidir, HTTP sorğularının göndərilməsini cURL ilə müqayisədə sadələşdirir. Əsas fərq təbii dilə yaxın sintaksisdir: arqumentlər boşluqlarla ayrılır, başlıqlar iki nöqtə ilə, JSON məlumatları isə bərabərlik işarəsi ilə, dırnaqları ekranlaşdırmadan göstərilir.
Eyni POST sorğusu cURL-da ən azı üç bayraq (-X, -H, -d) və JSON-un əl ilə ekranlaşdırılmasını tələb edir. Httpie eyni işi bayraqlar olmadan üç sözlə görür, Content-Type: application/json-u avtomatik təyin edir və çıxışı rəngləyir. Cavab standart olaraq abzaslarla və sintaksis vurğulaması ilə formatlaşdırılır.
| Əməliyyat | cURL | Httpie |
|---|---|---|
| GET sorğusu | curl https://api.example.com | http GET https://api.example.com |
| POST JSON | curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.com | http POST https://api.example.com name=test |
| Başlıq | curl -H "Authorization: Bearer token123" https://api.example.com | http GET https://api.example.com Authorization:"Bearer token123" |
Httpie əsas parametrlər üçün bayraqlar olmadan vahid komanda sətri formatından istifadə edir. HTTP metodu birinci arqument (GET, POST, PUT, DELETE, PATCH), URL isə ikinci kimi göstərilir. Metod buraxılarsa, Httpie avtomatik olaraq GET (gövdəsiz sorğular üçün) və ya POST (gövdəli) seçir.
Authorization:"Bearer token".name=John age=30.active:=true tags:=["dev","test"].avatar@~/photo.jpg.Httpie məlumat növünü avtomatik müəyyən edir: key=value ötürülərsə, gövdə JSON kimi göndərilir. --raw vasitəsilə xam mətn ötürülərsə — düz mətn kimi. form-data formatı -f bayrağı ilə aktivləşdirilir.
# JSON məlumatları və başlığı ilə POST sorğusu
http POST https://api.example.com/users \
name="John Doe" \
email="john@example.com" \
role:="admin" \
Authorization:"Bearer test123"
# Vurğulama və Pretty-print ilə cavab
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 42,
"name": "John Doe"
}
JSON seriyalaşdırma Httpie-də avtomatik işləyir: key=value kimi ötürülən dəyər JSON-un sətir sahəsinə çevrilir. Ədədlər və məntiqi dəyərlər üçün key:=value istifadə olunur. İç-içə obyektlər nöqtə notasiyası ilə yaradılır: address.city=Moscow.
Httpie faylları və məlumatları key@path sintaksisi ilə yükləmək üçün multipart/form-data formatını dəstəkləyir. Faylın məzmununu sorğunun xam gövdəsi kimi göndərmək lazımdırsa, giriş yönləndirməsi istifadə olunur: http POST example.com < file.json. Cavabı fayla endirmək üçün -d (download) bayrağı tətbiq olunur.
# Fayldan JSON göndərilməsi
http POST https://api.example.com/users < user.json
# Faylın multipart vasitəsilə yüklənməsi
http -f POST https://api.example.com/upload \
photo@~/photo.jpg \
description="Profile photo"
Sessiyalar Httpie-də sorğular arasında vəziyyəti saxlayır: kukilər, başlıqlar və autentifikasiya parametrləri. Sessiya --session=name bayrağı ilə yaradılır. Sessiya məlumatları ~/.httpie/sessions/ qovluğunda JSON faylında saxlanılır. :readonly sonluqlu sessiya sorğudan sonra yenilənmir.
Əvvəlcə POST giriş məlumatları ilə /auth/login ünvanına göndərilir — server sessiya kukisini qaytarır. Eyni sessiya daxilində qorunan endpoint-lərə edilən bütün sonrakı sorğular avtomatik olaraq saxlanılmış kukini göndərir, bu da mobil tətbiqin API-ni sınaqdan keçirərkən brauzerin davranışını simulyasiya edir.
# Addım 1: autentifikasiya
http --session=app-test POST https://api.example.com/auth/login \
username="dev" password="secret"
# Addım 2: saxlanılmış sessiya kukisi ilə sorğu
http --session=app-test GET https://api.example.com/users/me
Httpie bayraqlar vasitəsilə bütün əsas autentifikasiya növlərini dəstəkləyir: Basic Auth üçün -a user:pass, Digest üçün --auth-type=digest, Bearer Token üçün --auth-type=bearer TOKEN. Fərdi başlıqlar komandanın istənilən yerində HeaderName:value kimi əlavə olunur.
OAuth 2.0 ilə API-nin sınağı üçün token Authorization başlığı vasitəsilə ötürülür. Httpie nüvə səviyyəsində tokenin həyat dövrünü idarə etmir — bunu xarici skript edir. http --auth-type=bearer --auth="$TOKEN" GET https://api.example.com/resource əmri tokenli başlığın açıq şəkildə göstərilməsinə ekvivalentdir.
Httpie sıfır asılılıqlar (Python istisna olmaqla) və oxuna bilən çıxış sayəsində CI/CD pipeline-lər üçün idealdır. Əmrlər əlavə pars etmədən loglarda asanlıqla oxunur. Alət pip vasitəsilə quraşdırılır və bütün populyar Docker imiclərində, o cümlədən Alpine, Ubuntu və Jenkins və GitLab CI sistemlərinin rəsmi imiclərində mövcuddur. Bu, Httpie-ni REST API və mikroxidmətlərin avtomatlaşdırılmış sınağı üçün əlverişli seçim edir.
Tipik ssenari — tətbiqin deyployundan sonra API statusunun yoxlanılması. Httpie health-endpoint-ə sorğu göndərir və cavab gözlənilənə uyğun deyilsə, sıfırdan fərqli kodla işini bitirir. --check-status bayrağı status kodu >= 300 olduqda avtomatik xəta qaytarır.
# Deyploy skriptində health check
http --check-status GET https://api.staging.example.com/health
status:="ok" && \
echo "API sağlamdır" || \
echo "API yoxlaması uğursuz oldu"
Httpie plaginləri Package Index sistemi vasitəsilə dəstəkləyir. Plaginlər yeni autentifikasiya növləri, seriyalaşdırma formatları və nəqliyyat vasitələri əlavə edir. Quraşdırma pip vasitəsilə aparılır: pip install httpie-plugin-name. Quraşdırmadan sonra plagin Httpie-nin növbəti işə salınmasında avtomatik aktivləşir.
Httpie --pretty=format seçimi vasitəsilə jq-bənzəri filtrləməni və --print vasitəsilə cURL-uyğun çıxışı dəstəkləyir. --quiet bayrağı CI loglarında daha yaxşı oxunma üçün rəngli çıxışı söndürür. Cavabın proqram emalı üçün yalnız başlıqsız cavab gövdəsini çap edən --body bayrağından istifadə edin.
# jq ilə JSON cavabından sahənin çıxarılması
http GET https://api.example.com/users/1 | jq '.name'
# Yalnız cavab gövdəsinin çap edilməsi (başlıqsız)
http --body GET https://api.example.com/health
# Fayldakı müxtəlif məlumatlarla paketlə göndərmə
while read -r line; do
http POST https://api.example.com/items $line
done < items.txt
Httpie --print bayrağı ilə çıxış formatlarını dəstəkləyir: H (sorğu başlıqları), B (sorğu gövdəsi), h (cavab başlıqları), b (cavab gövdəsi). --print=hb kombinasiyası yalnız cavab başlıqlarını və gövdəsini göstərir. --pretty=all bayrağı abzaslarla rəngli formatlaşdırmanı aktivləşdirir.
Httpie HTTPIE_COLORS dəyişəni vasitəsilə fərdiləşdirməni dəstəkləyir. URL, başlıqlar, JSON və status kodları üçün rəng təyin edin. Müxtəlif terminallar üçün daxili mövzular mövcuddur: autumn, borland, fruity, monokai, native, tango.
Proqram emalı üçün xam JSON qaytaran --body --pretty=none istifadə edin. Kompakt çıxış skriptlərdə API testinin avtomatlaşdırılmasında jq, sed və digər parserlərə ötürmək üçün faydalıdır.
Httpie --print bayrağı ilə bir neçə çıxış formatını dəstəkləyir: H (sorğu başlıqları), B (sorğu gövdəsi), h (cavab başlıqları), b (cavab gövdəsi). --print=hb kombinasiyası yalnız cavab başlıqlarını və gövdəsini, rabitə haqqında meta-məlumatı istisna etməklə göstərir. --pretty=all bayrağı oxunaqlılıq üçün abzaslarla rəngli formatlaşdırmanı aktivləşdirir.
Httpie HTTPIE_COLORS mühit dəyişəni vasitəsilə rənglərin fərdiləşdirilməsini dəstəkləyir. URL, başlıqlar, JSON açarları və cavab status kodları üçün rəng təyin etmək olar. Müxtəlif terminal növləri və şəxsi üstünlüklər üçün daxili mövzular mövcuddur: autumn, borland, fruity, monokai, native və tango.
Çıxışın proqram emalı üçün rəngsiz və abzassız xam JSON qaytaran --body --pretty=none bayraqlar kombinasiyasından istifadə edin. Kompakt çıxış shell skriptlərində REST API testinin avtomatlaşdırılması zamanı jq, sed və digər konsol parserlərinə ötürmək üçün faydalıdır.
Tez-tez verilən suallar
Httpie əsas əməliyyatlar üçün bayraqsız daha oxuna bilən sintaksis, avtomatik JSON seriyalaşdırma, cavabın rəngli vurğulanması və daxili sessiya dəstəyi təklif edir. cURL aşağı səviyyəli əməliyyatlar üçün əvəzolunmaz qalır: FTP, SMTP və qeyri-standart protokollarla iş.
-f bayrağından (və ya --form) istifadə edin: http -f POST example.com name=John file@~/photo.jpg. Httpie avtomatik olaraq Content-Type: multipart/form-data təyin edəcək. -f bayrağı olmadan məlumatlar application/json kimi göndərilir.
Bəli, Httpie HTTPS-i dəstəkləyir. Öz-özünə imzalanmış sertifikatlar üçün --verify=no bayrağından istifadə edin. Fərdi CA faylını göstərmək üçün: --verify=/path/to/cert.pem. Standart olaraq sertifikat yoxlanışı aktivdir.
Xeyr, Httpie WebSocket-i dəstəkləmir və yalnız HTTP/HTTPS protokolu üçün nəzərdə tutulub. WebSocket üçün websocat və ya wscat istifadə edin. Httpie REST, GraphQL və fayl əməliyyatlarına diqqət yetirir.
-d (download) bayrağından istifadə edin: http -d GET https://example.com/file.zip. Httpie faylı Content-Disposition başlığından və ya URL-dən orijinal adla saxlayacaq. Fərdi ad üçün -o output.zip göstərin.
Yekun nəticələr
http [method] URL [key=value] [Header:value] əksər sorğular üçün bayraq tələb etmir.Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun