Go Resty
Go Resty è una libreria del linguaggio Go per la creazione di client API RESTful. Fornisce un'API concisa e potente che consente ai programmatori di inviare facilmente richieste HTTP e gestire le risposte.
Caratteristiche
- Supporta i metodi di richiesta GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS e altri
- Impostazioni semplici e concatenabili e metodi di richiesta
- Il corpo della richiesta può essere di tipo
string
,[]byte
,struct
,map
,slice
eio.Reader
- Rileva automaticamente il
Content-Type
- Utilizza l'elaborazione non bufferizzata per
io.Reader
- Accede all'istanza originale di
*http.Request
tramiteRequest.RawRequest
nei middleware ed esecuzione della richiesta - Consente letture multiple del corpo della richiesta tramite
Request.RawRequest.GetBody()
- Rileva automaticamente il
- Offre più possibilità con l'oggetto di risposta
- Accede alla risposta come un array di
[]byte
-response.Body()
, o come unastring
-response.String()
- Recupera il tempo di risposta
response.Time()
e il tempo ricevutoresponse.ReceivedAt()
- Accede alla risposta come un array di
- Codifica e decodifica automaticamente tipi di contenuti come
JSON
eXML
- Predefinito a
JSON
se l'intestazioneContent-Type
e i parametristruct/map
non vengono forniti - Fornisce opzioni per sovrascrivere la codifica/decodifica JSON e la codifica/decodifica XML
- Predefinito a
- Caricamento semplice di uno o più file tramite
multipart/form-data
- Rileva automaticamente il tipo di contenuto dei file
- Supporta meccanismi di retry di backoff e riferimenti di funzione di condizione di retry
- Supporto middleware per le richieste HTTP e REST nel client Resty, inclusa la richiesta e la risposta
- Supporta
Request.SetContext
- Opzioni di autorizzazione per i token
BasicAuth
eBearer
- Imposta il valore
ContentLength
della richiesta per tutte le richieste o richieste specifiche - Certificati radice personalizzati e certificati client
- Scarica/salva direttamente le risposte HTTP su un file, simile al comando
curl -o
- Supporto richieste e CookieJar per i cookie
- Richieste basate su record SRV invece dell'URL dell'host
- Impostazioni del client come
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
, ecc. - Design Resty
- Impostazione e selezione a livello di client, con opzione di sovrascrittura a livello di richiesta
- Middleware per richieste e risposte
- Consente la creazione di più client utilizzando
resty.New()
se necessario
- Sicuro per la concorrenza delle Goroutine
- Modalità di debug - visualizzazione log chiara e ricca
- Gzip - Go lo gestisce automaticamente, con gestione di fallback in Resty
- Compatibile con
HTTP/2
eHTTP/1.1
- Supporto Bazel
- Fornisce un facile mocking per testare Resty
Versioni di Go supportate
Si consiglia di utilizzare go1.16
e versioni successive.
A partire dalla versione v1.10.0
, Resty supporta i go modules
.
Dalla versione di Resty v2
in su, supporta completamente la pubblicazione del pacchetto dei moduli go. Richiede l'uso di una versione di Go che comprenda gli import con suffisso /vN
:
- 1.9.7+
- 1.10.3+
- 1.11+