İçeriğe geç

~/labs/reqx

reqx

İstek oluşturucuları, yeniden deneme, OAuth desteği ve makul varsayılanlarıyla temiz, genişletilebilir bir HTTP istemcisi.

Go için, builder desenine dayalı akıcı bir HTTP istemcisi: yerleşik yeniden deneme mekanizması, OAuth1 desteği ve multipart form işleme. Yalnızca standart kütüphaneyi kullanır.

Kurulum

go get github.com/oshturhq/reqx

Özellikler

  • Akıcı builder deseni: metotları zincirleyerek temiz, okunaklı kod
  • Basic Auth, Bearer Token ve OAuth1 (HMAC-SHA1)
  • Zaman aşımları ve 5xx hataları için bekleme süreli otomatik yeniden deneme
  • JSON, form URL encoded ve multipart form gövdeleri
  • Akış destekli dosya yüklemeleri için multipart form oluşturucu
  • Context istemciye, tek bir isteğe ya da ikisine birden verilebilir
  • Durum kontrolü ve JSON çözümleme için yanıt yardımcıları
  • Sıfır bağımlılık: yalnızca standart kütüphane

Örnek

client, err := reqx.NewClientBuilder().
    BaseURL("https://api.example.com").
    Timeout(30 * time.Second).
    BearerAuth("your-token").
    Build()
if err != nil {
    panic(err)
}

var result map[string]any
var errResp map[string]any

resp, err := client.Get("/users").
    QueryParam("page", "1").
    Do(&result, &errResp)