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,sliceeio.Reader- Rileva automaticamente il
Content-Type - Utilizza l'elaborazione non bufferizzata per
io.Reader - Accede all'istanza originale di
*http.RequesttramiteRequest.RawRequestnei 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
JSONeXML- Predefinito a
JSONse l'intestazioneContent-Typee i parametristruct/mapnon 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
BasicAutheBearer - Imposta il valore
ContentLengthdella 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/2eHTTP/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+