transport

package
v0.1.12 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2019 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultRetryTransport = retry.Transport{
	Delay: retry.Constant(100 * time.Millisecond),
	Retry: retry.All(Context(), retry.Max(9), retry.EOF(), retry.Net(), retry.Temporary(), RetryCodes(408, 502, 503, 504)),
}

DefaultRetryTransport is used as default retry mechanism

Functions

func Context

func Context() retry.Retryer

Context aborts if the request's context is finished

func RetryCodes

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

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

Types

type ChainableRoundTripper

type ChainableRoundTripper interface {
	// Transport returns the RoundTripper to make HTTP requests
	Transport() http.RoundTripper
	// SetTransport sets the RoundTripper to make HTTP requests
	SetTransport(http.RoundTripper)
	// RoundTrip executes a single HTTP transaction via Transport()
	RoundTrip(*http.Request) (*http.Response, error)
}

ChainableRoundTripper models a chainable round tripper

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 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 RequestSourceRoundTripper added in v0.1.12

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 added in v0.1.12

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

RoundTrip executes a single HTTP transaction via Transport()

func (*RequestSourceRoundTripper) SetTransport added in v0.1.12

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

SetTransport sets the RoundTripper to make HTTP requests

func (*RequestSourceRoundTripper) Transport added in v0.1.12

Transport returns the RoundTripper to make HTTP requests

type RetryRoundTripper

type RetryRoundTripper struct {
	RetryTransport *retry.Transport
	// 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 `DefaultRetryTransport` 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

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

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

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

Jump to

Keyboard shortcuts

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