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.Requesta través deRequest.RawRequesten 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
JSONyXML- Por defecto, utiliza
JSONsi no se proporcionan encabezadosContent-Typey 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
BasicAuthyBearer - Establece el valor
ContentLengthde 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/2yHTTP/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+