Go Resty
Go Resty est une bibliothèque de langage Go pour la construction de clients d'API RESTful. Il fournit une API concise et puissante qui permet aux développeurs d'envoyer facilement des requêtes HTTP et de gérer les réponses.
Caractéristiques
- Prise en charge des méthodes de requête GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, et autres
- Paramètres et méthodes de requête simples et chaînables
- Le corps de la requête peut être de type
string
,[]byte
,struct
,map
,slice
, etio.Reader
- Détecte automatiquement le
Content-Type
- Utilise un traitement non mis en mémoire tampon pour
io.Reader
- Accède à l'instance originale de
*http.Request
viaRequest.RawRequest
dans les middlewares et l'exécution de la requête - Permet de lire plusieurs fois le corps de la requête à travers
Request.RawRequest.GetBody()
- Détecte automatiquement le
- Offre plus de possibilités avec l'objet Response
- Accède à la réponse en tant que tableau de
[]byte
-response.Body()
, ou en tant questring
-response.String()
- Récupère le temps de réponse
response.Time()
et le temps de réceptionresponse.ReceivedAt()
- Accède à la réponse en tant que tableau de
- Encode et décode automatiquement les types de contenu tels que
JSON
etXML
- Par défaut à
JSON
si l'en-têteContent-Type
et les paramètresstruct/map
ne sont pas fournis - Offre des options pour remplacer l'encodage/décodage JSON et l'encodage/décodage XML
- Par défaut à
- Chargement simple d'un ou de plusieurs fichiers via
multipart/form-data
- Détecte automatiquement le type de contenu des fichiers
- Prise en charge du mécanisme de réessai et des références de fonction de condition de réessai
- Prise en charge des middlewares pour les requêtes HTTP et REST dans le client Resty, y compris la requête et la réponse
- Prend en charge
Request.SetContext
- Options d'autorisation pour les jetons
BasicAuth
etBearer
- Définit la valeur
ContentLength
de la requête pour toutes les requêtes ou des requêtes spécifiques - Certificats racine personnalisés et certificats client
- Télécharge/enregistre directement les réponses HTTP dans un fichier, similaire à la commande
curl -o
- Support de requête et de CookieJar pour les cookies
- Requêtes basées sur les enregistrements SRV au lieu de l'URL de l'hôte
- Paramètres du client tels que
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
, etc. - Conception de Resty
- Définir et sélectionner au niveau du client, avec la possibilité de remplacer au niveau de la requête
- Middlewares pour les requêtes et les réponses
- Permet la création de plusieurs clients en utilisant
resty.New()
si nécessaire
- Sûr pour les goroutines en cas de concurrence
- Mode de débogage - affichage de journal clair et riche
- Gzip - Go le gère automatiquement, avec une prise en charge de secours dans Resty
- Compatible avec
HTTP/2
etHTTP/1.1
- Prise en charge de Bazel
- Fournit un mock facile pour tester Resty
Versions de Go prises en charge
Il est recommandé d'utiliser go1.16
et supérieur.
À partir de la version v1.10.0
, Resty prend en charge les go modules
.
À partir de la version Resty v2
et supérieure, il prend en charge pleinement la publication de packages de go modules. Il nécessite l'utilisation d'une version de Go qui comprend les importations avec suffixe /vN
:
- 1.9.7+
- 1.10.3+
- 1.11+