Documentation
¶
Index ¶
- Variables
- 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 ErrorResponse
- type GlobalRequestConfig
- type Middleware
- type Option
- type ReadingResponseMetricHook
- type Request
- type RequestBodyWriter
- type 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) 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 (
ReadingResponseMetricHookKey = ReadingResponseMetricHook{}
)
var ( StdClient = &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: defaultTransportDialContext(&net.Dialer{ Timeout: 3 * time.Second, KeepAlive: 30 * time.Second, }), ForceAttemptHTTP2: true, MaxIdleConns: 512, MaxIdleConnsPerHost: 32, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 5 * time.Second, ExpectContinueTimeout: 1 * time.Second, ReadBufferSize: 8 * 1024, WriteBufferSize: 8 * 1024, }, } )
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 ErrorResponse ¶
func (ErrorResponse) Error ¶
func (e ErrorResponse) Error() string
type GlobalRequestConfig ¶
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) 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) 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