Go Resty
Go Resty ist eine Go-Sprachbibliothek für den Aufbau von RESTful API-Clients. Es bietet eine prägnante und leistungsstarke API, die es Entwicklern ermöglicht, HTTP-Anforderungen einfach zu senden und Antworten zu verarbeiten.
Funktionen
- Unterstützt GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS und andere Anfragemethoden
- Einfache und verknüpfbare Einstellungen und Anfragemethoden
- Der Anfragekörper kann vom Typ
string
,[]byte
,struct
,map
,slice
undio.Reader
sein- Erkennt automatisch
Content-Type
- Verwendet ungepufferte Verarbeitung für
io.Reader
- Greift über
Request.RawRequest
auf die ursprüngliche*http.Request
-Instanz in Middleware und Anfrageausführung zu - Ermöglicht mehrfaches Lesen des Anfragekörpers über
Request.RawRequest.GetBody()
- Erkennt automatisch
- Bietet mit dem Response-Objekt weitere Möglichkeiten
- Greift auf die Antwort als
[]byte
-Array zu -response.Body()
, oder alsstring
-response.String()
- Ruft die Antwortzeit
response.Time()
und die Empfangszeitresponse.ReceivedAt()
ab
- Greift auf die Antwort als
- Kodiert und decodiert automatisch Content-Types wie
JSON
undXML
- Standardmäßig auf
JSON
, wennContent-Type
-Header undstruct/map
-Parameter nicht bereitgestellt werden - Bietet Optionen zum Überschreiben von JSON-Encoding/Decoding und XML-Encoding/Decoding
- Standardmäßig auf
- Einfaches Hochladen von einer oder mehreren Dateien über
multipart/form-data
- Erkennt automatisch den Content-Type der Dateien
- Unterstützt Backoff-Retry-Mechanismus und Wiederholungsbedingungsfunktionsverweise
- Middleware-Unterstützung für HTTP- und REST-Anfragen im Resty-Client, einschließlich Anfrage und Antwort
- Unterstützt
Request.SetContext
- Autorisierungsoptionen für
BasicAuth
undBearer
-Token - Legt den Wert der Anforderung
ContentLength
für alle oder bestimmte Anfragen fest - Benutzerdefinierte Stammzertifikate und Clientzertifikate
- Lädt HTTP-Antworten direkt herunter/speichert sie in einer Datei, ähnlich dem
curl -o
-Befehl - Unterstützung von Anfragen und CookieJar für Cookies
- Anfragen basierend auf SRV-Einträgen anstelle der Host-URL
- Clienteinstellungen wie
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
, etc. - Resty-Design
- Einstellung und Auswahl auf Client-Ebene, mit der Möglichkeit zur Überschreibung auf Anfrage-Ebene
- Middleware für Anfragen und Antworten
- Ermöglicht die Erstellung mehrerer Clients über
resty.New()
, wenn nötig
- Goroutine-sicher für Nebenläufigkeit
- Debug-Modus - klare und umfangreiche Protokollanzeige
- Gzip - Go handhabt es automatisch, mit Fallback-Behandlung in Resty
- Kompatibel mit
HTTP/2
undHTTP/1.1
- Bazel-Unterstützung
- Ermöglicht einfaches Mocking für das Testen von Resty
Unterstützte Go-Versionen
Es wird empfohlen, go1.16
und höher zu verwenden.
Ab Version v1.10.0
unterstützt Resty go modules
.
Ab Resty-Version v2
und höher unterstützt es vollständig das Veröffentlichen von go modules-Paketen. Es erfordert die Verwendung einer Go-Version, die Importe mit dem /vN
-Suffix versteht:
- 1.9.7+
- 1.10.3+
- 1.11+