Go Resty
Go Resty adalah sebuah perpustakaan bahasa Go untuk membangun klien API RESTful. Ini menyediakan API yang ringkas dan powerful yang memungkinkan pengembang untuk dengan mudah mengirim permintaan HTTP dan menangani respons.
Fitur
- Mendukung metode permintaan GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, dan lainnya
- Pengaturan permintaan dan metode yang sederhana dan dapat di-chain
- Badan permintaan bisa berupa tipe
string
,[]byte
,struct
,map
,slice
, danio.Reader
- Mendeteksi otomatis
Content-Type
- Menggunakan pemrosesan tanpa buffering untuk
io.Reader
- Mengakses instance asli
*http.Request
melaluiRequest.RawRequest
dalam middleware dan eksekusi permintaan - Memungkinkan beberapa pembacaan badan permintaan melalui
Request.RawRequest.GetBody()
- Mendeteksi otomatis
- Memberikan lebih banyak kemungkinan dengan objek Respons
- Mengakses respons sebagai array
[]byte
-response.Body()
, atau sebagaistring
-response.String()
- Mendapatkan waktu respons
response.Time()
dan waktu penerimaanresponse.ReceivedAt()
- Mengakses respons sebagai array
- Mengodekan dan mendekodekan tipe konten seperti
JSON
danXML
secara otomatis- Defaultnya menggunakan
JSON
jika headerContent-Type
dan parameterstruct/map
tidak disediakan - Memberikan opsi untuk mengganti pengodekan/pendekodekan JSON dan pengodekan XML
- Defaultnya menggunakan
- Mengunggah satu atau lebih file secara mudah melalui
multipart/form-data
- Mendeteksi otomatis tipe konten dari file-file tersebut
- Mendukung mekanisme percobaan ulang backoff dan referensi fungsi kondisi percobaan ulang
- Mendukung middleware untuk permintaan HTTP dan REST dalam klien Resty, termasuk Permintaan dan Respons
- Mendukung
Request.SetContext
- Opsi otorisasi untuk token
BasicAuth
danBearer
- Mengatur nilai
ContentLength
permintaan untuk semua permintaan atau permintaan tertentu - Sertifikat akar kustom dan sertifikat klien
- Mengunduh/menyimpan respons HTTP secara langsung ke file, mirip dengan perintah
curl -o
- Dukungan Permintaan dan CookieJar untuk cookie
- Permintaan berdasarkan catatan SRV alih-alih URL host
- Pengaturan klien seperti
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
, dll. - Desain Resty
- Menetapkan dan memilih pada tingkat klien, dengan opsi override pada tingkat permintaan
- Middleware untuk permintaan dan respons
- Memungkinkan pembuatan beberapa klien menggunakan
resty.New()
jika diperlukan
- Aman untuk goroutine saat digunakan secara bersamaan
- Mode debug - tampilan log yang jelas dan kaya
- Gzip - Go menanganinya secara otomatis, dengan penanganan fallback di Resty
- Kompatibel dengan
HTTP/2
danHTTP/1.1
- Dukungan Bazel
- Memberikan mock yang mudah untuk pengujian Resty
Versi Go yang Didukung
Disarankan untuk menggunakan go1.16
ke atas.
Mulai dari versi v1.10.0
, Resty mendukung go modules
.
Mulai dari Resty versi v2
dan yang lebih tinggi, ini sepenuhnya mendukung penerbitan paket go modules. Ini memerlukan penggunaan versi Go yang memahami impor dengan sufiks /vN
:
- 1.9.7+
- 1.10.3+
- 1.11+