Back to godoc.org

Package transport

v0.1.73
Latest Go to latest

The latest major version is .

Published: 1 day ago | License: MIT | Module: github.com/pace/bricks

Index

Constants

const (
	DumpRoundTripperOptionRequest     = "request"
	DumpRoundTripperOptionResponse    = "response"
	DumpRoundTripperOptionRequestHEX  = "request-hex"
	DumpRoundTripperOptionResponseHEX = "response-hex"
	DumpRoundTripperOptionBody        = "body"
)

Variables

var (
	ErrRetryFailed   = errors.New("failed after maximum number of retries")
	ErrCircuitBroken = errors.New("circuit to remote host is open")
)

func Context

func Context() retry.Retryer

Context aborts if the request's context is finished

func NewCircuitBreakerTripper

func NewCircuitBreakerTripper(settings gobreaker.Settings) *circuitBreakerTripper

func NewDefaultCircuitBreakerTripper

func NewDefaultCircuitBreakerTripper(name string) *circuitBreakerTripper

func NewDefaultRetryTransport

func NewDefaultRetryTransport() *retry.Transport

NewDefaultRetryTransport returns a new default retry transport.

func RetryCodes

func RetryCodes(codes ...int) retry.Retryer

RetryCodes retries when the status code is one of the provided list

type ChainableRoundTripper

type ChainableRoundTripper interface {
	http.RoundTripper

	// Transport returns the RoundTripper to make HTTP requests
	Transport() http.RoundTripper
	// SetTransport sets the RoundTripper to make HTTP requests
	SetTransport(http.RoundTripper)
}

ChainableRoundTripper models a chainable round tripper

type DumpRoundTripper

type DumpRoundTripper struct {
	DumpRequest     bool
	DumpResponse    bool
	DumpRequestHEX  bool
	DumpResponseHEX bool
	DumpBody        bool
	// contains filtered or unexported fields
}

DumpRoundTripper dumps requests and responses in one log event. This is not part of te request logger to be able to filter dumps more easily

func NewDumpRoundTripper

func NewDumpRoundTripper(options ...string) *DumpRoundTripper

NewDumpRoundTripper return the roundtripper with configured options

func NewDumpRoundTripperEnv

func NewDumpRoundTripperEnv() *DumpRoundTripper

NewDumpRoundTripperEnv creates a new RoundTripper based on the configuration that is passed via environment variables

func (DumpRoundTripper) AnyEnabled

func (l DumpRoundTripper) AnyEnabled() bool

AnyEnabled returns true if any logging is enabled

func (*DumpRoundTripper) RoundTrip

func (l *DumpRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a single HTTP transaction via Transport()

func (*DumpRoundTripper) SetTransport

func (l *DumpRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*DumpRoundTripper) Transport

func (l *DumpRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type DumpRoundTripperOption

type DumpRoundTripperOption string

type JaegerRoundTripper

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

JaegerRoundTripper implements a chainable round tripper for tracing

func (*JaegerRoundTripper) RoundTrip

func (l *JaegerRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a HTTP request with distributed tracing

func (*JaegerRoundTripper) SetTransport

func (l *JaegerRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*JaegerRoundTripper) Transport

func (l *JaegerRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type LocaleRoundTripper

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

LocaleRoundTripper implements a chainable round tripper for locale forwarding

func (*LocaleRoundTripper) RoundTrip

func (l *LocaleRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a HTTP request with logging

func (*LocaleRoundTripper) SetTransport

func (l *LocaleRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*LocaleRoundTripper) Transport

func (l *LocaleRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type LoggingRoundTripper

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

LoggingRoundTripper implements a chainable round tripper for logging

func (*LoggingRoundTripper) RoundTrip

func (l *LoggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a HTTP request with logging

func (*LoggingRoundTripper) SetTransport

func (l *LoggingRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*LoggingRoundTripper) Transport

func (l *LoggingRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type RequestIDRoundTripper

type RequestIDRoundTripper struct {
	SourceName string
	// contains filtered or unexported fields
}

RequestIDRoundTripper implements a chainable round tripper for setting the Request-Source header

func (*RequestIDRoundTripper) RoundTrip

func (l *RequestIDRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a single HTTP transaction via Transport()

func (*RequestIDRoundTripper) SetTransport

func (l *RequestIDRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*RequestIDRoundTripper) Transport

func (l *RequestIDRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type RequestSourceRoundTripper

type RequestSourceRoundTripper struct {
	SourceName string
	// contains filtered or unexported fields
}

RequestSourceRoundTripper implements a chainable round tripper for setting the Request-Source header

func (*RequestSourceRoundTripper) RoundTrip

func (l *RequestSourceRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a single HTTP transaction via Transport()

func (*RequestSourceRoundTripper) SetTransport

func (l *RequestSourceRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*RequestSourceRoundTripper) Transport

func (l *RequestSourceRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type RetryRoundTripper

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

RetryRoundTripper implements a chainable round tripper for retrying requests

func NewDefaultRetryRoundTripper

func NewDefaultRetryRoundTripper() *RetryRoundTripper

NewDefaultRetryRoundTripper returns a retry round tripper with a NewDefaultRetryTransport() as transport.

func NewRetryRoundTripper

func NewRetryRoundTripper(rt *retry.Transport) *RetryRoundTripper

NewRetryRoundTripper returns a retry round tripper with the specified retry transport.

func (*RetryRoundTripper) RoundTrip

func (l *RetryRoundTripper) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip executes a HTTP request with retrying

func (*RetryRoundTripper) SetTransport

func (l *RetryRoundTripper) SetTransport(rt http.RoundTripper)

SetTransport sets the RoundTripper to make HTTP requests

func (*RetryRoundTripper) Transport

func (l *RetryRoundTripper) Transport() http.RoundTripper

Transport returns the RoundTripper to make HTTP requests

type RoundTripperChain

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

RoundTripperChain chains multiple chainable round trippers together.

func Chain

func Chain(rt ...ChainableRoundTripper) *RoundTripperChain

Chain returns a round tripper chain with the specified chainable round trippers and http.DefaultTransport as transport. The transport can be overriden by using the Final method.

func NewDefaultTransportChain

func NewDefaultTransportChain() *RoundTripperChain

NewDefaultTransportChain returns a transport chain with retry, jaeger and logging support. If not explicitly finalized via `Final` it uses `http.DefaultTransport` as finalizer.

func (*RoundTripperChain) Final

func (c *RoundTripperChain) Final(t http.RoundTripper) *RoundTripperChain

Final sets the transport of the round tripper chain, which is used to make the actual request. Final should be called at the end of the chain. If not called, http.DefaultTransport is used. It returns the finalized round tripper chain.

func (*RoundTripperChain) RoundTrip

func (c *RoundTripperChain) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip calls all round trippers in the chain before executing the request.

func (*RoundTripperChain) Use

func (c *RoundTripperChain) Use(rt ChainableRoundTripper) *RoundTripperChain

Use adds a chainable round tripper to the round tripper chain. It returns the updated round tripper chain.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier