Go Resty
Go Resty es una biblioteca de lenguaje Go para construir clientes de API RESTful. Proporciona una API concisa y potente que permite a los desarrolladores enviar fácilmente solicitudes HTTP y manejar respuestas.
Características
- Admite los métodos de solicitud GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, y otros
- Configuraciones simples y encadenables para los métodos de solicitud
- El cuerpo de la solicitud puede ser del tipo
string
,[]byte
,struct
,map
,slice
, eio.Reader
- Detecta automáticamente el
Content-Type
- Utiliza un procesamiento sin búfer para
io.Reader
- Accede a la instancia original
*http.Request
a través deRequest.RawRequest
en middleware y ejecución de la solicitud - Permite múltiples lecturas del cuerpo de la solicitud a través de
Request.RawRequest.GetBody()
- Detecta automáticamente el
- Proporciona más posibilidades con el objeto de respuesta
- Accede a la respuesta como una matriz
[]byte
-response.Body()
, o como una cadenastring
-response.String()
- Obtiene el tiempo de respuesta
response.Time()
y el tiempo recibidoresponse.ReceivedAt()
- Accede a la respuesta como una matriz
- Codifica y decodifica automáticamente tipos de contenido como
JSON
yXML
- Por defecto, utiliza
JSON
si no se proporcionan encabezadosContent-Type
y parámetrosstruct/map
- Proporciona opciones para anular la codificación/decodificación JSON y la codificación/decodificación XML
- Por defecto, utiliza
- Subida sencilla de uno o más archivos a través de
multipart/form-data
- Detecta automáticamente el tipo de contenido de los archivos
- Admite mecanismo de reintento de respaldo y referencias de función de condición de reintento
- Soporte de middleware para solicitudes HTTP y REST en el cliente Resty, incluyendo solicitud y respuesta
- Admite
Request.SetContext
- Opciones de autorización para tokens
BasicAuth
yBearer
- Establece el valor
ContentLength
de la solicitud para todas las solicitudes o solicitudes específicas - Certificados raíz personalizados y certificados de cliente
- Descarga/guarda directamente respuestas HTTP en un archivo, similar al comando
curl -o
- Soporte de solicitud y CookieJar para cookies
- Solicitudes basadas en registros SRV en lugar de la URL del host
- Configuraciones de cliente como
Timeout
,RedirectPolicy
,Proxy
,TLSClientConfig
,Transport
, etc. - Diseño de Resty
- Establece y selecciona a nivel de cliente, con opción de anulación a nivel de solicitud
- Middleware para solicitudes y respuestas
- Permite la creación de múltiples clientes usando
resty.New()
si es necesario
- Seguro para concurrencia en Goroutines
- Modo de depuración: visualización clara y completa de registros
- Gzip: Go lo maneja automáticamente, con manejo de respaldo en Resty
- Compatible con
HTTP/2
yHTTP/1.1
- Soporte de Bazel
- Proporciona un fácil mock para probar Resty
Versiones de Go compatibles
Se recomienda utilizar go1.16
y versiones superiores.
A partir de la versión v1.10.0
, Resty soporta go modules
.
Desde la versión v2
y superiores de Resty, admite completamente la publicación de paquetes de módulos de Go. Requiere el uso de una versión de Go que entienda las importaciones con sufijo /vN
:
- 1.9.7+
- 1.10.3+
- 1.11+