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,sliceundio.Readersein- Erkennt automatisch
Content-Type - Verwendet ungepufferte Verarbeitung für
io.Reader - Greift über
Request.RawRequestauf 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
JSONundXML- 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
BasicAuthundBearer-Token - Legt den Wert der Anforderung
ContentLengthfü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/2undHTTP/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+