Documentation ¶
Index ¶
- func SetDefault(re *RequestExecutor)
- type Error
- type Request
- func (r *Request[T]) Do(ctx context.Context) (*T, error)
- func (r *Request[T]) WithHeaders(headers map[string]string) *Request[T]
- func (r *Request[T]) WithMethod(httpMethod string) *Request[T]
- func (r *Request[T]) WithPayload(payload interface{}) *Request[T]
- func (r *Request[T]) WithQueryParameters(params map[string]string) *Request[T]
- func (r *Request[T]) WithRequestExecutor(re *RequestExecutor) *Request[T]
- func (r *Request[T]) WithURL(url string) *Request[T]
- type RequestExecutor
- func (re *RequestExecutor) AddCaching(ttl time.Duration) *RequestExecutor
- func (re *RequestExecutor) AddLogging(logger *slog.Logger) *RequestExecutor
- func (re *RequestExecutor) AddPerformanceMonitor(threshold time.Duration, logger *slog.Logger) *RequestExecutor
- func (re *RequestExecutor) WithAuthorization(schema string, authorize middlewares.AuthorizeFunc) *RequestExecutor
- func (re *RequestExecutor) WithExponentialRetry(retry int) *RequestExecutor
- func (re *RequestExecutor) WithLinearRetry(retry int) *RequestExecutor
- func (re *RequestExecutor) WithMiddleware(handler middlewares.Middleware) *RequestExecutor
- func (re *RequestExecutor) WithMiddlewares(handlers ...middlewares.Middleware) *RequestExecutor
- func (re *RequestExecutor) WithTimeout(timeout time.Duration) *RequestExecutor
- type Response
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDefault ¶
func SetDefault(re *RequestExecutor)
SetDefault makes re the default RequestExecutor.
Types ¶
type Request ¶
type Request[T any] struct { // contains filtered or unexported fields }
Request represents an HTTP request with fluent methods for customization.
func (*Request[T]) WithHeaders ¶
WithHeaders sets the headers for the request.
func (*Request[T]) WithMethod ¶
WithMethod sets the HTTP method for the request.
func (*Request[T]) WithPayload ¶
WithPayload sets the payload for the request.
func (*Request[T]) WithQueryParameters ¶
WithQueryParameters sets the query parameters for the request.
func (*Request[T]) WithRequestExecutor ¶
func (r *Request[T]) WithRequestExecutor(re *RequestExecutor) *Request[T]
WithRequestExecutor sets the RequestExecutor for the request.
type RequestExecutor ¶
type RequestExecutor struct { MinWaitRetry time.Duration MaxWaitRetry time.Duration Logger *slog.Logger // contains filtered or unexported fields }
RequestExecutor is a struct representing an HTTP client with middleware support.
func NewRequestExecutor ¶
func NewRequestExecutor(client http.Client) *RequestExecutor
NewRequestExecutor creates a new RequestExecutor with the provided http.Client.
func (*RequestExecutor) AddCaching ¶
func (re *RequestExecutor) AddCaching(ttl time.Duration) *RequestExecutor
AddCaching adds caching middleware to the RequestExecutor with the specified TTL.
func (*RequestExecutor) AddLogging ¶
func (re *RequestExecutor) AddLogging(logger *slog.Logger) *RequestExecutor
AddLogging adds logging middleware to the RequestExecutor.
func (*RequestExecutor) AddPerformanceMonitor ¶
func (re *RequestExecutor) AddPerformanceMonitor(threshold time.Duration, logger *slog.Logger) *RequestExecutor
AddPerformanceMonitor adds performance monitoring middleware to the RequestExecutor.
func (*RequestExecutor) WithAuthorization ¶
func (re *RequestExecutor) WithAuthorization(schema string, authorize middlewares.AuthorizeFunc) *RequestExecutor
WithAuthorization adds authorization middleware to the RequestExecutor with the specified schema and authorization function.
func (*RequestExecutor) WithExponentialRetry ¶
func (re *RequestExecutor) WithExponentialRetry(retry int) *RequestExecutor
WithExponentialRetry adds exponential retry middleware to the RequestExecutor with the specified retry count.
func (*RequestExecutor) WithLinearRetry ¶ added in v1.0.1
func (re *RequestExecutor) WithLinearRetry(retry int) *RequestExecutor
WithLinearRetry adds linear retry middleware to the RequestExecutor with the specified retry count.
func (*RequestExecutor) WithMiddleware ¶
func (re *RequestExecutor) WithMiddleware(handler middlewares.Middleware) *RequestExecutor
WithMiddleware adds a single middleware to the RequestExecutor.
func (*RequestExecutor) WithMiddlewares ¶
func (re *RequestExecutor) WithMiddlewares(handlers ...middlewares.Middleware) *RequestExecutor
WithMiddlewares adds multiple middlewares to the RequestExecutor.
func (*RequestExecutor) WithTimeout ¶
func (re *RequestExecutor) WithTimeout(timeout time.Duration) *RequestExecutor
WithTimeout sets the timeout for the RequestExecutor.