Documentation
¶
Overview ¶
nolint
nolint:mnd
Index ¶
- Variables
- type BasicAuth
- type Client
- func (c *Client) Delete(url string) *RequestBuilder
- func (c *Client) Get(url string) *RequestBuilder
- func (c *Client) GlobalRequestConfig() *GlobalRequestConfig
- func (c *Client) Patch(url string) *RequestBuilder
- func (c *Client) Post(url string) *RequestBuilder
- func (c *Client) Put(url string) *RequestBuilder
- type ClientBalancer
- func (c *ClientBalancer) Delete(method string) *RequestBuilder
- func (c *ClientBalancer) Execute(ctx context.Context, builder *RequestBuilder) (*Response, error)
- func (c *ClientBalancer) Get(method string) *RequestBuilder
- func (c *ClientBalancer) Patch(method string) *RequestBuilder
- func (c *ClientBalancer) Post(method string) *RequestBuilder
- func (c *ClientBalancer) Put(method string) *RequestBuilder
- func (c *ClientBalancer) Upgrade(hosts []string)
- type ClientBalancerOption
- type ErrorResponse
- type GlobalRequestConfig
- type Middleware
- type Option
- type ReadingResponseMetricHook
- type Request
- type RequestBodyWriter
- type RequestBuilder
- func (b *RequestBuilder) BaseUrl(baseUrl string) *RequestBuilder
- func (b *RequestBuilder) BasicAuth(ba BasicAuth) *RequestBuilder
- func (b *RequestBuilder) BearerAuth(token string) *RequestBuilder
- func (b *RequestBuilder) Cookie(cookie *http.Cookie) *RequestBuilder
- func (b *RequestBuilder) Do(ctx context.Context) (*Response, error)
- func (b *RequestBuilder) DoAndReadBody(ctx context.Context) ([]byte, int, error)
- func (b *RequestBuilder) DoWithoutResponse(ctx context.Context) error
- func (b *RequestBuilder) GetRequestUrl() (string, error)
- func (b *RequestBuilder) Header(name string, value string) *RequestBuilder
- func (b *RequestBuilder) JsonRequestBody(value any) *RequestBuilder
- func (b *RequestBuilder) JsonResponseBody(responsePtr any) *RequestBuilder
- func (b *RequestBuilder) QueryParams(queryParams map[string]any) *RequestBuilder
- func (b *RequestBuilder) RequestBody(body []byte) *RequestBuilder
- func (b *RequestBuilder) StatusCodeToError() *RequestBuilder
- func (b *RequestBuilder) Timeout(timeout time.Duration) *RequestBuilder
- type Response
- type ResponseBodyReader
- type RoundTripper
- type RoundTripperFunc
Constants ¶
This section is empty.
Variables ¶
var (
ErrEmptyRequestUrl = errors.New("request url is empty")
)
var (
ReadingResponseMetricHookKey = ReadingResponseMetricHook{}
)
nolint:gochecknoglobals
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) Delete ¶
func (c *Client) Delete(url string) *RequestBuilder
func (*Client) Get ¶
func (c *Client) Get(url string) *RequestBuilder
func (*Client) GlobalRequestConfig ¶
func (c *Client) GlobalRequestConfig() *GlobalRequestConfig
func (*Client) Patch ¶
func (c *Client) Patch(url string) *RequestBuilder
func (*Client) Post ¶
func (c *Client) Post(url string) *RequestBuilder
func (*Client) Put ¶
func (c *Client) Put(url string) *RequestBuilder
type ClientBalancer ¶ added in v1.4.0
type ClientBalancer struct {
*Client
// contains filtered or unexported fields
}
func NewClientBalancer ¶ added in v1.4.0
func NewClientBalancer(initialHosts []string, opts ...ClientBalancerOption) *ClientBalancer
func (*ClientBalancer) Delete ¶ added in v1.4.0
func (c *ClientBalancer) Delete(method string) *RequestBuilder
func (*ClientBalancer) Execute ¶ added in v1.4.0
func (c *ClientBalancer) Execute(ctx context.Context, builder *RequestBuilder) (*Response, error)
func (*ClientBalancer) Get ¶ added in v1.4.0
func (c *ClientBalancer) Get(method string) *RequestBuilder
func (*ClientBalancer) Patch ¶ added in v1.4.0
func (c *ClientBalancer) Patch(method string) *RequestBuilder
func (*ClientBalancer) Post ¶ added in v1.4.0
func (c *ClientBalancer) Post(method string) *RequestBuilder
func (*ClientBalancer) Put ¶ added in v1.4.0
func (c *ClientBalancer) Put(method string) *RequestBuilder
func (*ClientBalancer) Upgrade ¶ added in v1.4.0
func (c *ClientBalancer) Upgrade(hosts []string)
type ClientBalancerOption ¶ added in v1.4.0
type ClientBalancerOption func(c *clientBalancerOptions)
func WithClient ¶ added in v1.4.0
func WithClient(cli *http.Client) ClientBalancerOption
func WithClientOptions ¶ added in v1.4.0
func WithClientOptions(opts ...Option) ClientBalancerOption
WithClientOptions appends passed opts to clientOpts
func WithHttpsSchema ¶ added in v1.4.0
func WithHttpsSchema() ClientBalancerOption
type ErrorResponse ¶
nolint:errname
func (ErrorResponse) Error ¶
func (e ErrorResponse) Error() string
type GlobalRequestConfig ¶
type GlobalRequestConfig struct {
Timeout time.Duration
BaseUrl string
BasicAuth *BasicAuth
Cookies []*http.Cookie
Headers map[string]string
}
func NewGlobalRequestConfig ¶
func NewGlobalRequestConfig() *GlobalRequestConfig
type Middleware ¶
type Middleware func(next RoundTripper) RoundTripper
func RequestId ¶
func RequestId() Middleware
type Option ¶
type Option func(c *Client)
func WithMiddlewares ¶
func WithMiddlewares(mws ...Middleware) Option
type ReadingResponseMetricHook ¶
type ReadingResponseMetricHook struct{}
type RequestBodyWriter ¶
type RequestBuilder ¶
type RequestBuilder struct {
// contains filtered or unexported fields
}
func NewRequestBuilder ¶
func NewRequestBuilder( method string, url string, cfg *GlobalRequestConfig, execute func(ctx context.Context, req *RequestBuilder) (*Response, error), ) *RequestBuilder
func (*RequestBuilder) BaseUrl ¶ added in v1.4.0
func (b *RequestBuilder) BaseUrl(baseUrl string) *RequestBuilder
func (*RequestBuilder) BasicAuth ¶ added in v1.5.1
func (b *RequestBuilder) BasicAuth(ba BasicAuth) *RequestBuilder
func (*RequestBuilder) BearerAuth ¶ added in v1.7.0
func (b *RequestBuilder) BearerAuth(token string) *RequestBuilder
func (*RequestBuilder) Cookie ¶
func (b *RequestBuilder) Cookie(cookie *http.Cookie) *RequestBuilder
func (*RequestBuilder) DoAndReadBody ¶
func (*RequestBuilder) DoWithoutResponse ¶
func (b *RequestBuilder) DoWithoutResponse(ctx context.Context) error
func (*RequestBuilder) GetRequestUrl ¶ added in v1.8.2
func (b *RequestBuilder) GetRequestUrl() (string, error)
func (*RequestBuilder) Header ¶
func (b *RequestBuilder) Header(name string, value string) *RequestBuilder
func (*RequestBuilder) JsonRequestBody ¶
func (b *RequestBuilder) JsonRequestBody(value any) *RequestBuilder
func (*RequestBuilder) JsonResponseBody ¶
func (b *RequestBuilder) JsonResponseBody(responsePtr any) *RequestBuilder
JsonResponseBody If response status code between 200 and 299, unmarshal response body to responsePtr
func (*RequestBuilder) QueryParams ¶
func (b *RequestBuilder) QueryParams(queryParams map[string]any) *RequestBuilder
func (*RequestBuilder) RequestBody ¶
func (b *RequestBuilder) RequestBody(body []byte) *RequestBuilder
func (*RequestBuilder) StatusCodeToError ¶
func (b *RequestBuilder) StatusCodeToError() *RequestBuilder
StatusCodeToError If set and Response.IsSuccess is false, Do return ErrorResponse as error
func (*RequestBuilder) Timeout ¶
func (b *RequestBuilder) Timeout(timeout time.Duration) *RequestBuilder
Timeout Set per request attempt timeout, default timeout 15 seconds
type Response ¶
func (*Response) Body ¶
Body Read and return full response body Be careful, after calling Close returned data is no longer available Do not call close or copy slice if you want to use data outside the calling function
func (*Response) BodyCopy ¶
BodyCopy Return copy of response body Slice is available after calling Close
func (*Response) Close ¶
func (r *Response) Close()
Close Release all resources associated with Response (buffer, tcp connection, context) After call, bytes slice returned by Body can not be used