client

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: May 11, 2023 License: Apache-2.0 Imports: 15 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewNativeHttpClient

func NewNativeHttpClient(properties *HttpClientProperties) (*http.Client, error)

Types

type ContextualHttpClient

type ContextualHttpClient interface {
	Get(ctx context.Context, url string, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Post(ctx context.Context, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Put(ctx context.Context, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Patch(ctx context.Context, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Delete(ctx context.Context, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Request(ctx context.Context, method string, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
}

func NewTraceableHttpClient

func NewTraceableHttpClient(client HttpClient, appProps *config.AppProperties) ContextualHttpClient

type DefaultHttpClient

type DefaultHttpClient struct {
	// contains filtered or unexported fields
}

func (*DefaultHttpClient) Delete

func (d *DefaultHttpClient) Delete(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)

func (*DefaultHttpClient) Get

func (d *DefaultHttpClient) Get(url string, result interface{}, options ...RequestOption) (*HttpResponse, error)

func (*DefaultHttpClient) Patch

func (d *DefaultHttpClient) Patch(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)

func (*DefaultHttpClient) Post

func (d *DefaultHttpClient) Post(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)

func (*DefaultHttpClient) Put

func (d *DefaultHttpClient) Put(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)

func (*DefaultHttpClient) Request

func (d *DefaultHttpClient) Request(method string, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)

type HttpClient

type HttpClient interface {
	Get(url string, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Post(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Put(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Patch(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Delete(url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
	Request(method string, url string, body interface{}, result interface{}, options ...RequestOption) (*HttpResponse, error)
}

func NewDefaultHttpClient

func NewDefaultHttpClient(base *http.Client) HttpClient

type HttpClientProperties

type HttpClientProperties struct {
	// Timeout specifies a time limit for requests made by this client.
	// The timeout includes connection time, any redirects, and reading the response body.
	// A Timeout of zero means no timeout.
	Timeout time.Duration `default:"60s"`

	// MaxIdleConns is the connection pool size,
	// and this is the maximum connection that can be open;
	// its default value is 100 connections, zero means no limit.
	MaxIdleConns int `default:"100"`

	// MaxIdleConnsPerHost is the number of connection can be allowed to open per host basic.
	// If zero, http.Transport DefaultMaxIdleConnsPerHost is used.
	MaxIdleConnsPerHost int `default:"100"`

	// MaxConnsPerHost optionally limits the total number of
	// connections per host, including connections in the dialing,
	// active, and idle states. On limit violation, dials will block.
	// Zero means no limit.
	MaxConnsPerHost int `default:"100"`

	// Proxy specify proxy url and urls will apply proxy and
	// the requests with these urls will be requested under proxy
	Proxy ProxyProperties
}

func NewHttpClientProperties

func NewHttpClientProperties(loader config.Loader) (*HttpClientProperties, error)

func (HttpClientProperties) Prefix

func (h HttpClientProperties) Prefix() string

type HttpResponse

type HttpResponse struct {
	Status     string
	StatusCode int
}

type HttpSeries

type HttpSeries int
const (
	SeriesInformational HttpSeries = 1
	SeriesSuccessful    HttpSeries = 2
	SeriesRedirection   HttpSeries = 3
	SeriesClientError   HttpSeries = 4
	SeriesServerError   HttpSeries = 5
)

func NewHttpSeries

func NewHttpSeries(statusCode int) HttpSeries

func (HttpSeries) Is

func (h HttpSeries) Is(series HttpSeries) bool

func (HttpSeries) IsError

func (h HttpSeries) IsError() bool

type ProxyProperties

type ProxyProperties struct {
	// Url is proxy url. Example: http://localhost:8080
	Url string

	// AppliedUris is the list of URIs, which will be requested under above proxy
	// Example:
	// 		https://example.com/path/
	//		All URL starts with https://example.com/path/ will be request under proxy
	AppliedUris []string
}

type RequestOption

type RequestOption func(r *http.Request)

func WithBasicAuth

func WithBasicAuth(username string, password string) RequestOption

func WithContentLength

func WithContentLength(length int) RequestOption

func WithContentType

func WithContentType(contentType string) RequestOption

func WithHeader

func WithHeader(key string, value string) RequestOption

type RequestReader

type RequestReader interface {

	// Read the request
	Read() (io.Reader, error)
}

type TraceableHttpClient

type TraceableHttpClient struct {
	// contains filtered or unexported fields
}

func (*TraceableHttpClient) Delete

func (t *TraceableHttpClient) Delete(ctx context.Context, url string, body interface{}, result interface{},
	options ...RequestOption) (*HttpResponse, error)

func (*TraceableHttpClient) Get

func (t *TraceableHttpClient) Get(ctx context.Context, url string, result interface{},
	options ...RequestOption) (*HttpResponse, error)

func (*TraceableHttpClient) Patch

func (t *TraceableHttpClient) Patch(ctx context.Context, url string, body interface{}, result interface{},
	options ...RequestOption) (*HttpResponse, error)

func (*TraceableHttpClient) Post

func (t *TraceableHttpClient) Post(ctx context.Context, url string, body interface{}, result interface{},
	options ...RequestOption) (*HttpResponse, error)

func (*TraceableHttpClient) Put

func (t *TraceableHttpClient) Put(ctx context.Context, url string, body interface{}, result interface{},
	options ...RequestOption) (*HttpResponse, error)

func (*TraceableHttpClient) Request

func (t *TraceableHttpClient) Request(ctx context.Context, method string, url string, body interface{},
	result interface{}, options ...RequestOption) (*HttpResponse, error)

Jump to

Keyboard shortcuts

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