Versions in this module Expand all Collapse all v0 v0.1.1 Aug 27, 2024 Changes in this version + const ContentTypeApplicationOctetStream + const ContentTypeForm + const ContentTypeJSON + const ContentTypeJSONUTF8 + const ContentTypeMultipart + const ContentTypeText + const ContentTypeXML + const ContentTypeXMLUTF8 + const ContentTypeYAML + const ContentTypeYAMLUTF8 + const HeaderAccept + const HeaderAcceptCH + const HeaderAcceptCHLifetime + const HeaderAcceptCharset + const HeaderAcceptEncoding + const HeaderAcceptLanguage + const HeaderAcceptPatch + const HeaderAcceptPushPolicy + const HeaderAcceptRanges + const HeaderAcceptSignature + const HeaderAccessControlAllowCredentials + const HeaderAccessControlAllowHeaders + const HeaderAccessControlAllowMethods + const HeaderAccessControlAllowOrigin + const HeaderAccessControlExposeHeaders + const HeaderAccessControlMaxAge + const HeaderAccessControlRequestHeaders + const HeaderAccessControlRequestMethod + const HeaderAge + const HeaderAllow + const HeaderAltSvc + const HeaderAuthorization + const HeaderCacheControl + const HeaderClearSiteData + const HeaderConnection + const HeaderContentDPR + const HeaderContentDisposition + const HeaderContentEncoding + const HeaderContentLanguage + const HeaderContentLength + const HeaderContentLocation + const HeaderContentRange + const HeaderContentSecurityPolicy + const HeaderContentSecurityPolicyReportOnly + const HeaderContentType + const HeaderCookie + const HeaderCrossOriginResourcePolicy + const HeaderDNT + const HeaderDPR + const HeaderDate + const HeaderETag + const HeaderEarlyData + const HeaderExpect + const HeaderExpectCT + const HeaderExpires + const HeaderFeaturePolicy + const HeaderForwarded + const HeaderFrom + const HeaderHost + const HeaderIfMatch + const HeaderIfModifiedSince + const HeaderIfNoneMatch + const HeaderIfRange + const HeaderIfUnmodifiedSince + const HeaderIndex + const HeaderKeepAlive + const HeaderLargeAllocation + const HeaderLastEventID + const HeaderLastModified + const HeaderLink + const HeaderLocation + const HeaderMaxForwards + const HeaderNEL + const HeaderOrigin + const HeaderPingFrom + const HeaderPingTo + const HeaderPragma + const HeaderProxyAuthenticate + const HeaderProxyAuthorization + const HeaderProxyConnection + const HeaderPublicKeyPins + const HeaderPublicKeyPinsReportOnly + const HeaderPushPolicy + const HeaderRange + const HeaderReferer + const HeaderReferrerPolicy + const HeaderReportTo + const HeaderRetryAfter + const HeaderSaveData + const HeaderSecWebSocketAccept + const HeaderSecWebSocketExtensions + const HeaderSecWebSocketKey + const HeaderSecWebSocketProtocol + const HeaderSecWebSocketVersion + const HeaderServer + const HeaderServerTiming + const HeaderSetCookie + const HeaderSignature + const HeaderSignedHeaders + const HeaderSourceMap + const HeaderStrictTransportSecurity + const HeaderTE + const HeaderTimingAllowOrigin + const HeaderTk + const HeaderTrailer + const HeaderTransferEncoding + const HeaderUpgrade + const HeaderUpgradeInsecureRequests + const HeaderUserAgent + const HeaderVary + const HeaderVia + const HeaderViewportWidth + const HeaderWWWAuthenticate + const HeaderWarning + const HeaderWidth + const HeaderXContentTypeOptions + const HeaderXDNSPrefetchControl + const HeaderXDownloadOptions + const HeaderXForwardedFor + const HeaderXForwardedHost + const HeaderXForwardedProto + const HeaderXFrameOptions + const HeaderXPermittedCrossDomainPolicies + const HeaderXPingback + const HeaderXPoweredBy + const HeaderXRequestedWith + const HeaderXRobotsTag + const HeaderXUACompatible + const HeaderXXSSProtection + var DefaultFormEncoder = &FormEncoder + var DefaultJSONDecoder = &JSONDecoder + var DefaultJSONEncoder = &JSONEncoder + var DefaultXMLDecoder = &XMLDecoder + var DefaultXMLEncoder = &XMLEncoder + var DefaultYAMLDecoder = &YAMLDecoder + var DefaultYAMLEncoder = &YAMLEncoder + var ErrEncodingFailed = errors.New("encoding failed") + var ErrFailedToCloseResponseBody = errors.New("failed to close response body") + var ErrInvalidTransportType = errors.New("invalid transport type") + var ErrMapper = "%w: %v" + var ErrNotSupportSaveMethod = errors.New("the provided type for saving is not supported") + var ErrRequestCreationFailed = errors.New("failed to create request") + var ErrResponseNil = errors.New("response is nil") + var ErrResponseReadFailed = errors.New("failed to read response") + var ErrUnsupportedContentType = errors.New("unsupported content type") + var ErrUnsupportedDataType = errors.New("unsupported data type") + var ErrUnsupportedFormFieldsType = errors.New("unsupported form fields type") + var ErrUnsupportedScheme = errors.New("unsupported proxy scheme") + func DefaultBackoffStrategy(delay time.Duration) func(int) time.Duration + func DefaultRetryIf(req *http.Request, resp *http.Response, err error) bool + func ExponentialBackoffStrategy(initialInterval time.Duration, multiplier float64, ...) func(int) time.Duration + func GetBuffer() *bytebufferpool.ByteBuffer + func LinearBackoffStrategy(initialInterval time.Duration) func(int) time.Duration + func PutBuffer(b *bytebufferpool.ByteBuffer) + type AuthMethod interface + Apply func(req *http.Request) + Valid func() bool + type AuthType string + var BasicAuthType AuthType = "Basic" + var BearerAuthType AuthType = "Bearer" + type BackoffStrategy func(attempt int) time.Duration + type BasicAuth struct + Password string + Username string + func (b BasicAuth) Apply(req *http.Request) + func (b BasicAuth) Valid() bool + type BearerAuth struct + Token string + func (b BearerAuth) Apply(req *http.Request) + func (b BearerAuth) Valid() bool + type Client struct + Auth AuthMethod + BaseURL string + Cookies []*http.Cookie + HTTPClient *http.Client + Headers *http.Header + JSONDecoder Decoder + JSONEncoder Encoder + Logger Logger + MaxRetries int + Middlewares []Middleware + RetryIf RetryIfFunc + RetryStrategy BackoffStrategy + TLSConfig *tls.Config + XMLDecoder Decoder + XMLEncoder Encoder + YAMLDecoder Decoder + YAMLEncoder Encoder + func Create(config *Config) *Client + func URL(baseURL string) *Client + func (c *Client) AddDefaultHeader(key, value string) + func (c *Client) AddMiddleware(middlewares ...Middleware) + func (c *Client) Connect(path string) *RequestBuilder + func (c *Client) Custom(path, method string) *RequestBuilder + func (c *Client) DelDefaultCookie(name string) + func (c *Client) DelDefaultHeader(key string) + func (c *Client) Delete(path string) *RequestBuilder + func (c *Client) Get(path string) *RequestBuilder + func (c *Client) Head(path string) *RequestBuilder + func (c *Client) InsecureSkipVerify() *Client + func (c *Client) NewRequestBuilder(method, path string) *RequestBuilder + func (c *Client) Options(path string) *RequestBuilder + func (c *Client) Patch(path string) *RequestBuilder + func (c *Client) Post(path string) *RequestBuilder + func (c *Client) Put(path string) *RequestBuilder + func (c *Client) RemoveProxy() + func (c *Client) SetAuth(auth AuthMethod) + func (c *Client) SetBaseURL(baseURL string) + func (c *Client) SetCookieJar(jar *cookiejar.Jar) + func (c *Client) SetDefaultAccept(accept string) + func (c *Client) SetDefaultContentType(contentType string) + func (c *Client) SetDefaultCookie(name, value string) + func (c *Client) SetDefaultCookieJar() error + func (c *Client) SetDefaultCookies(cookies map[string]string) + func (c *Client) SetDefaultHeader(key, value string) + func (c *Client) SetDefaultHeaders(headers *http.Header) + func (c *Client) SetDefaultReferer(referer string) + func (c *Client) SetDefaultTimeout(timeout time.Duration) + func (c *Client) SetDefaultTransport(transport http.RoundTripper) + func (c *Client) SetDefaultUserAgent(userAgent string) + func (c *Client) SetHTTPClient(httpClient *http.Client) + func (c *Client) SetJSONMarshal(marshalFunc func(v any) ([]byte, error)) + func (c *Client) SetJSONUnmarshal(unmarshalFunc func(data []byte, v any) error) + func (c *Client) SetLogger(logger Logger) *Client + func (c *Client) SetMaxRetries(maxRetries int) *Client + func (c *Client) SetProxy(proxyURL string) error + func (c *Client) SetRetryIf(retryIf RetryIfFunc) *Client + func (c *Client) SetRetryStrategy(strategy BackoffStrategy) *Client + func (c *Client) SetTLSConfig(config *tls.Config) *Client + func (c *Client) SetXMLMarshal(marshalFunc func(v any) ([]byte, error)) + func (c *Client) SetXMLUnmarshal(unmarshalFunc func(data []byte, v any) error) + func (c *Client) SetYAMLMarshal(marshalFunc func(v any) ([]byte, error)) + func (c *Client) SetYAMLUnmarshal(unmarshalFunc func(data []byte, v any) error) + func (c *Client) Trace(path string) *RequestBuilder + type Config struct + BaseURL string + CookieJar *cookiejar.Jar + Cookies map[string]string + Headers *http.Header + Logger Logger + MaxRetries int + Middlewares []Middleware + RetryIf RetryIfFunc + RetryStrategy BackoffStrategy + TLSConfig *tls.Config + Timeout time.Duration + Transport http.RoundTripper + type CustomAuth struct + Header string + func (c CustomAuth) Apply(req *http.Request) + func (c CustomAuth) Valid() bool + type Decoder interface + Decode func(r io.Reader, v any) error + type DefaultLogger struct + func (l *DefaultLogger) Debugf(format string, v ...any) + func (l *DefaultLogger) Errorf(format string, v ...any) + func (l *DefaultLogger) Infof(format string, v ...any) + func (l *DefaultLogger) SetLevel(level Level) + func (l *DefaultLogger) Warnf(format string, v ...any) + type Encoder interface + ContentType func() string + Encode func(v any) (io.Reader, error) + type File struct + Content io.ReadCloser + FileMime string + FileName string + Name string + func (f *File) SetContent(content io.ReadCloser) + func (f *File) SetFileName(fileName string) + func (f *File) SetName(name string) + type FormEncoder struct + func (e *FormEncoder) Encode(v any) (io.Reader, error) + type JSONDecoder struct + UnmarshalFunc func(data []byte, v any) error + func (d *JSONDecoder) Decode(r io.Reader, v any) error + type JSONEncoder struct + MarshalFunc func(v any) ([]byte, error) + func (e *JSONEncoder) ContentType() string + func (e *JSONEncoder) Encode(v any) (io.Reader, error) + type Level int + const LevelDebug + const LevelError + const LevelInfo + const LevelWarn + type Logger interface + Debugf func(format string, v ...any) + Errorf func(format string, v ...any) + Infof func(format string, v ...any) + SetLevel func(level Level) + Warnf func(format string, v ...any) + func NewDefaultLogger(output io.Writer, level Level) Logger + type Middleware func(next MiddlewareHandlerFunc) MiddlewareHandlerFunc + type MiddlewareHandlerFunc func(req *http.Request) (*http.Response, error) + type RequestBuilder struct + BeforeRequest func(req *http.Request) error + func (b *RequestBuilder) Accept(accept string) *RequestBuilder + func (b *RequestBuilder) AddHeader(key, value string) *RequestBuilder + func (b *RequestBuilder) AddMiddleware(middlewares ...Middleware) + func (b *RequestBuilder) Auth(auth AuthMethod) *RequestBuilder + func (b *RequestBuilder) Body(body interface{}) *RequestBuilder + func (b *RequestBuilder) ContentType(contentType string) *RequestBuilder + func (b *RequestBuilder) Cookie(key, value string) *RequestBuilder + func (b *RequestBuilder) Cookies(cookies map[string]string) *RequestBuilder + func (b *RequestBuilder) DelCookie(key ...string) *RequestBuilder + func (b *RequestBuilder) DelFile(key ...string) *RequestBuilder + func (b *RequestBuilder) DelFormField(key ...string) *RequestBuilder + func (b *RequestBuilder) DelHeader(key ...string) *RequestBuilder + func (b *RequestBuilder) DelPathParam(key ...string) *RequestBuilder + func (b *RequestBuilder) DelQuery(key ...string) *RequestBuilder + func (b *RequestBuilder) File(key, filename string, content io.ReadCloser) *RequestBuilder + func (b *RequestBuilder) Files(files ...*File) *RequestBuilder + func (b *RequestBuilder) Form(v any) *RequestBuilder + func (b *RequestBuilder) FormField(key, val string) *RequestBuilder + func (b *RequestBuilder) FormFields(fields any) *RequestBuilder + func (b *RequestBuilder) Header(key, value string) *RequestBuilder + func (b *RequestBuilder) Headers(headers http.Header) *RequestBuilder + func (b *RequestBuilder) JSONBody(v interface{}) *RequestBuilder + func (b *RequestBuilder) MaxRetries(maxRetries int) *RequestBuilder + func (b *RequestBuilder) Method(method string) *RequestBuilder + func (b *RequestBuilder) Path(path string) *RequestBuilder + func (b *RequestBuilder) PathParam(key, value string) *RequestBuilder + func (b *RequestBuilder) PathParams(params map[string]string) *RequestBuilder + func (b *RequestBuilder) Queries(params url.Values) *RequestBuilder + func (b *RequestBuilder) QueriesStruct(queryStruct interface{}) *RequestBuilder + func (b *RequestBuilder) Query(key, value string) *RequestBuilder + func (b *RequestBuilder) RawBody(v []byte) *RequestBuilder + func (b *RequestBuilder) Referer(referer string) *RequestBuilder + func (b *RequestBuilder) RetryIf(retryIf RetryIfFunc) *RequestBuilder + func (b *RequestBuilder) RetryStrategy(strategy BackoffStrategy) *RequestBuilder + func (b *RequestBuilder) Send(ctx context.Context) (*Response, error) + func (b *RequestBuilder) Stream(callback StreamCallback) *RequestBuilder + func (b *RequestBuilder) StreamDone(callback StreamDoneCallback) *RequestBuilder + func (b *RequestBuilder) StreamErr(callback StreamErrCallback) *RequestBuilder + func (b *RequestBuilder) TextBody(v string) *RequestBuilder + func (b *RequestBuilder) Timeout(timeout time.Duration) *RequestBuilder + func (b *RequestBuilder) UserAgent(userAgent string) *RequestBuilder + func (b *RequestBuilder) XMLBody(v interface{}) *RequestBuilder + func (b *RequestBuilder) YAMLBody(v interface{}) *RequestBuilder + type Response struct + BodyBytes []byte + Client *Client + Context context.Context + RawResponse *http.Response + func NewResponse(ctx context.Context, resp *http.Response, client *Client, ...) (*Response, error) + func (r *Response) Body() []byte + func (r *Response) Close() error + func (r *Response) ContentLength() int + func (r *Response) ContentType() string + func (r *Response) Cookies() []*http.Cookie + func (r *Response) Header() http.Header + func (r *Response) IsContentType(contentType string) bool + func (r *Response) IsEmpty() bool + func (r *Response) IsJSON() bool + func (r *Response) IsSuccess() bool + func (r *Response) IsXML() bool + func (r *Response) IsYAML() bool + func (r *Response) Location() (*url.URL, error) + func (r *Response) Save(v any) error + func (r *Response) Scan(v interface{}) error + func (r *Response) ScanJSON(v interface{}) error + func (r *Response) ScanXML(v interface{}) error + func (r *Response) ScanYAML(v interface{}) error + func (r *Response) Status() string + func (r *Response) StatusCode() int + func (r *Response) String() string + func (r *Response) URL() *url.URL + type RetryConfig struct + MaxRetries int + RetryIf RetryIfFunc + Strategy BackoffStrategy + type RetryIfFunc func(req *http.Request, resp *http.Response, err error) bool + type StreamCallback func([]byte) error + type StreamDoneCallback func() + type StreamErrCallback func(error) + type XMLDecoder struct + UnmarshalFunc func(data []byte, v any) error + func (d *XMLDecoder) Decode(r io.Reader, v any) error + type XMLEncoder struct + MarshalFunc func(v any) ([]byte, error) + func (e *XMLEncoder) ContentType() string + func (e *XMLEncoder) Encode(v any) (io.Reader, error) + type YAMLDecoder struct + UnmarshalFunc func(data []byte, v any) error + func (d *YAMLDecoder) Decode(r io.Reader, v any) error + type YAMLEncoder struct + MarshalFunc func(v any) ([]byte, error) + func (e *YAMLEncoder) ContentType() string + func (e *YAMLEncoder) Encode(v any) (io.Reader, error)