client

package
v0.23.4 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2018 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func OptSetCloseChan

func OptSetCloseChan(c <-chan struct{}) func(*Type)

OptSetCloseChan sets a channel that when closed will interrupt any blocking calls within the client.

func OptSetLogger

func OptSetLogger(log log.Modular) func(*Type)

OptSetLogger sets the logger to use.

func OptSetStats

func OptSetStats(stats metrics.Type) func(*Type)

OptSetStats sets the metrics aggregator to use.

Types

type Config

type Config struct {
	URL          string            `json:"url" yaml:"url"`
	Verb         string            `json:"verb" yaml:"verb"`
	Headers      map[string]string `json:"headers" yaml:"headers"`
	TimeoutMS    int64             `json:"timeout_ms" yaml:"timeout_ms"`
	RetryMS      int64             `json:"retry_period_ms" yaml:"retry_period_ms"`
	MaxBackoffMS int64             `json:"max_retry_backoff_ms" yaml:"max_retry_backoff_ms"`
	NumRetries   int               `json:"retries" yaml:"retries"`
	BackoffOn    []int             `json:"backoff_on" yaml:"backoff_on"`
	DropOn       []int             `json:"drop_on" yaml:"drop_on"`
	TLS          tls.Config        `json:"tls" yaml:"tls"`
	auth.Config  `json:",inline" yaml:",inline"`
}

Config is a configuration struct for an HTTP client.

func NewConfig

func NewConfig() Config

NewConfig creates a new Config with default values.

type Type

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

Type is an output type that pushes messages to Type.

func New

func New(conf Config, opts ...func(*Type)) (*Type, error)

New creates a new Type.

func (*Type) CreateRequest

func (h *Type) CreateRequest(msg types.Message) (req *http.Request, err error)

CreateRequest creates an HTTP request out of a single message.

func (*Type) Do

func (h *Type) Do(msg types.Message) (res *http.Response, err error)

Do attempts to create and perform an HTTP request from a message payload. This attempt may include retries, and if all retries fail an error is returned.

func (*Type) ParseResponse

func (h *Type) ParseResponse(res *http.Response) (resMsg types.Message, err error)

ParseResponse attempts to parse an HTTP response into a 2D slice of bytes.

func (*Type) Send

func (h *Type) Send(msg types.Message) (types.Message, error)

Send attempts to send a message to an HTTP server, this attempt may include retries, and if all retries fail an error is returned. The message payload can be nil, in which case an empty body is sent. The response will be parsed back into a message, meaning mulitpart content handling is done for you.

If the response body is empty the message returned is nil.

Jump to

Keyboard shortcuts

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