Go Resty

Go Resty, RESTful API istemcileri oluşturmak için kullanılan bir Go dil kütüphanesidir. Geliştiricilere HTTP isteklerini kolayca gönderme ve yanıtları işleme imkanı sağlayan özlü ve güçlü bir API sunar.

Özellikler

  • GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS ve diğer istek yöntemlerini destekler
  • Basit ve zincirlenebilir ayarlar ve istek yöntemleri
  • İstek gövdesi string, []byte, struct, map, slice ve io.Reader türünde olabilir
    • Otomatik olarak Content-Type tespiti yapar
    • io.Reader için önbelleksiz işleme kullanır
    • Middleware ve istek yürütme sırasında orijinal *http.Request örneğine Request.RawRequest üzerinden erişim sağlar
    • Request.RawRequest.GetBody() ile istek gövdesinin çoklu okumasına izin verir
  • Yanıt nesnesi ile daha fazla olasılık sağlar
    • Yanıtı []byte dizisi olarak alır - response.Body(), veya string olarak alır - response.String()
    • Yanıt süresini response.Time() ve alındığı zamanı response.ReceivedAt() alır
  • Otomatik olarak JSON ve XML gibi içerik türlerini kodlar ve çözer
    • Content-Type başlığı ve struct/map parametreleri sağlanmazsa varsayılan olarak JSON kullanır
    • JSON kodlama/çözme ve XML kodlama/çözme geçersiz kılma seçenekleri sunar
  • multipart/form-data ile kolayca bir veya daha fazla dosya yükler
    • Dosyaların içerik türünü otomatik olarak algılar
  • İade deneme mekanizması ve deneme koşul fonksiyonu referansları için destek sağlar
  • Resty istemcisinde HTTP ve REST istekleri için Middleware desteği, Request ve Response dahil
  • Request.SetContext desteği
  • BasicAuth ve Bearer tokenları için yetkilendirme seçenekleri
  • Tüm istekler veya belirli istekler için istek ContentLength değerini ayarlar
  • Özel kök sertifikaları ve istemci sertifikaları
  • curl -o komutuna benzer şekilde HTTP yanıtlarını doğrudan indirme/kaydetme
  • Çerezler için Request ve CookieJar desteği
  • Host URL yerine SRV kayıtlarına dayalı istekler
  • Timeout, RedirectPolicy, Proxy, TLSClientConfig, Transport vb. gibi istemci ayarları
  • Resty tasarımı
    • İstemci düzeyinde ayarlama ve seçme, istek düzeyinde geçersiz kılma seçeneği
    • İstekler ve yanıtlar için Middleware
    • Gerektiğinde resty.New() kullanarak birden fazla istemci oluşturmasına olanak tanır
  • Eşzamanlılık için Goroutine güvenli
  • Hata ayıklama modu - net ve zengin günlük görüntüleme
  • Gzip - Go tarafından otomatik olarak ele alınır, Resty'de yedek işleme sağlar
  • HTTP/2 ve HTTP/1.1 ile uyumludur
  • Bazel desteği
  • Resty'nin test edilmesi için kolay alay konusu sağlar

Desteklenen Go Sürümleri

go1.16 ve üstünün kullanılması önerilir.

v1.10.0 sürümünden itibaren Resty, go modüllerini destekler.

Resty v2 sürümünden itibaren tamamen go modülleri paketi yayınlamayı destekler. /vN soneki içeren alımları anlayabilen bir Go sürümünün kullanılmasını gerektirir:

  • 1.9.7+
  • 1.10.3+
  • 1.11+