httpclient

package
v2.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2026 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package httpclient constructs HTTP clients with optional OpenTelemetry tracing instrumentation.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Providers provides HTTP client construction for dependency injection.
	Providers = wire.NewSet(
		ProvideHTTPClient,
	)
)

Functions

func ProvideHTTPClient

func ProvideHTTPClient(cfg *Config) *http.Client

ProvideHTTPClient provides an HTTP client from config. If cfg is nil, defaults are used.

func RegisterHTTPClient

func RegisterHTTPClient(i do.Injector)

RegisterHTTPClient registers an *http.Client with the injector.

Types

type Config

type Config struct {
	Timeout             time.Duration `env:"TIMEOUT"                 json:"timeout"`
	MaxIdleConns        int           `env:"MAX_IDLE_CONNS"          json:"maxIdleConns"`
	MaxIdleConnsPerHost int           `env:"MAX_IDLE_CONNS_PER_HOST" json:"maxIdleConnsPerHost"`
	EnableTracing       bool          `env:"ENABLE_TRACING"          json:"enableTracing"`
}

Config configures an HTTP client.

func (*Config) BuildClient

func (cfg *Config) BuildClient() *http.Client

BuildClient constructs an HTTP client from config.

func (*Config) EnsureDefaults

func (cfg *Config) EnsureDefaults()

EnsureDefaults sets default values for zero fields.

func (*Config) ValidateWithContext

func (cfg *Config) ValidateWithContext(ctx context.Context) error

ValidateWithContext validates the config.

Jump to

Keyboard shortcuts

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