requestconfig

package
v0.1.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExecuteNewRequest

func ExecuteNewRequest(ctx context.Context, method string, u string, body any, dst any, opts ...RequestOption) error

Types

type HTTPDoer

type HTTPDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

This interface is primarily used to describe an *http.Client, but also supports custom HTTP implementations.

type PreRequestOptionFunc

type PreRequestOptionFunc func(*RequestConfig) error

func (PreRequestOptionFunc) Apply

type RequestConfig

type RequestConfig struct {
	MaxRetries     int
	RequestTimeout time.Duration
	Context        context.Context
	Request        *http.Request
	BaseURL        *url.URL
	CustomHTTPDoer HTTPDoer
	HTTPClient     *http.Client
	Middlewares    []middleware
	APIKey         string
	BearerToken    string
	// If ResponseBodyInto not nil, then we will attempt to deserialize into
	// ResponseBodyInto. If Destination is a []byte, then it will return the body as
	// is.
	ResponseBodyInto any
	// ResponseInto copies the \*http.Response of the corresponding request into the
	// given address
	ResponseInto **http.Response
	Body         io.Reader
}

RequestConfig represents all the state related to one request.

Editing the variables inside RequestConfig directly is unstable api. Prefer composing the RequestOption instead if possible.

func NewRequestConfig

func NewRequestConfig(ctx context.Context, method string, u string, body any, dst any, opts ...RequestOption) (*RequestConfig, error)

func PreRequestOptions

func PreRequestOptions(opts ...RequestOption) (RequestConfig, error)

PreRequestOptions is used to collect all the options which need to be known before a call to [RequestConfig.ExecuteNewRequest], such as path parameters or global defaults. PreRequestOptions will return a RequestConfig with the options applied.

Only request option functions of type PreRequestOptionFunc are applied.

func (*RequestConfig) Apply

func (cfg *RequestConfig) Apply(opts ...RequestOption) error

func (*RequestConfig) Clone

func (cfg *RequestConfig) Clone(ctx context.Context) *RequestConfig

func (*RequestConfig) Execute

func (cfg *RequestConfig) Execute() (err error)

type RequestOption

type RequestOption interface {
	Apply(*RequestConfig) error
}

type RequestOptionFunc

type RequestOptionFunc func(*RequestConfig) error

func (RequestOptionFunc) Apply

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL