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
veio.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ğineRequest.RawRequest
üzerinden erişim sağlar -
Request.RawRequest.GetBody()
ile istek gövdesinin çoklu okumasına izin verir
- Otomatik olarak
- Yanıt nesnesi ile daha fazla olasılık sağlar
- Yanıtı
[]byte
dizisi olarak alır -response.Body()
, veyastring
olarak alır -response.String()
- Yanıt süresini
response.Time()
ve alındığı zamanıresponse.ReceivedAt()
alır
- Yanıtı
- Otomatik olarak
JSON
veXML
gibi içerik türlerini kodlar ve çözer-
Content-Type
başlığı vestruct/map
parametreleri sağlanmazsa varsayılan olarakJSON
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
veBearer
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
veHTTP/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ülleri
ni 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+