Documentation ¶
Index ¶
- func AuthFieldSpecsExpanded() []*service.ConfigField
- func ConfigField(defaultVerb string, forOutput bool, extraChildren ...*service.ConfigField) *service.ConfigField
- type Client
- func (h *Client) Close(ctx context.Context) error
- func (h *Client) ResponseToBatch(res *http.Response) (service.MessageBatch, error)
- func (h *Client) Send(ctx context.Context, sendMsg service.MessageBatch) (service.MessageBatch, error)
- func (h *Client) SendToResponse(ctx context.Context, sendMsg service.MessageBatch) (res *http.Response, err error)
- type ErrUnexpectedHTTPRes
- type MultipartExpressions
- type OldConfig
- type RequestCreator
- type RequestOpt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthFieldSpecsExpanded ¶
func AuthFieldSpecsExpanded() []*service.ConfigField
AuthFieldSpecsExpanded includes OAuth2 and JWT fields that might not be appropriate for all components.
func ConfigField ¶
func ConfigField(defaultVerb string, forOutput bool, extraChildren ...*service.ConfigField) *service.ConfigField
ConfigField returns a public API config field spec for an HTTP component, with optional extra fields added to the end.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a component able to send and receive Benthos messages over HTTP.
func NewClientFromOldConfig ¶
func NewClientFromOldConfig(conf OldConfig, mgr *service.Resources, opts ...RequestOpt) (*Client, error)
NewClientFromOldConfig creates a new request creator from an old struct style config. Eventually I'd like to phase these out for the more dynamic service style parses, but it'll take a while so we have this for now.
func (*Client) ResponseToBatch ¶
ResponseToBatch attempts to parse an HTTP response into a 2D slice of bytes.
func (*Client) Send ¶
func (h *Client) Send(ctx context.Context, sendMsg service.MessageBatch) (service.MessageBatch, error)
Send creates an HTTP request from the client config, a provided message to be sent as the body of the request, and a reference message used to establish interpolated fields for the request (which can be the same as the message used for the body).
If the request is successful then the response is parsed into a message, including headers added as metadata (when configured to do so).
func (*Client) SendToResponse ¶
func (h *Client) SendToResponse(ctx context.Context, sendMsg service.MessageBatch) (res *http.Response, err error)
SendToResponse attempts to create an HTTP request from a provided message, performs it, and then returns the *http.Response, allowing the raw response to be consumed.
type ErrUnexpectedHTTPRes ¶
ErrUnexpectedHTTPRes is an error returned when an HTTP request returned an unexpected response.
func (ErrUnexpectedHTTPRes) Error ¶
func (e ErrUnexpectedHTTPRes) Error() string
Error returns the Error string.
type MultipartExpressions ¶
type MultipartExpressions struct { ContentDisposition *service.InterpolatedString ContentType *service.InterpolatedString Body *service.InterpolatedString }
MultipartExpressions represents three dynamic expressions that define a multipart message part in an HTTP request. Specifying one or more of these can be used as a way of creating HTTP requests that overrides the default behaviour.
type OldConfig ¶
type OldConfig struct { URL *service.InterpolatedString Verb string Headers map[string]*service.InterpolatedString Metadata *service.MetadataFilter ExtractMetadata *service.MetadataFilter RateLimit string Timeout time.Duration Retry time.Duration MaxBackoff time.Duration NumRetries int BackoffOn []int DropOn []int SuccessfulOn []int DumpRequestLogLevel string TLSEnabled bool TLSConf *tls.Config ProxyURL string // contains filtered or unexported fields }
OldConfig is a configuration struct for an HTTP client.
func ConfigFromParsed ¶
func ConfigFromParsed(pConf *service.ParsedConfig) (conf OldConfig, err error)
ConfigFromParsed attempts to parse an http client config struct from a parsed plugin config.
type RequestCreator ¶
type RequestCreator struct {
// contains filtered or unexported fields
}
RequestCreator creates *http.Request types from messages based on various configurable parameters.
func RequestCreatorFromOldConfig ¶
func RequestCreatorFromOldConfig(conf OldConfig, mgr *service.Resources, opts ...RequestOpt) (*RequestCreator, error)
RequestCreatorFromOldConfig creates a new request creator from an old struct style config. Eventually I'd like to phase these out for the more dynamic service style parses, but it'll take a while so we have this for now.
func (*RequestCreator) Create ¶
func (r *RequestCreator) Create(refBatch service.MessageBatch) (req *http.Request, err error)
Create an *http.Request using a reference message batch to extract the body and headers of the request. It's possible that the creator has been given explicit overrides for the body, in which case the reference batch is only used for general request headers/metadata enrichment.
type RequestOpt ¶
type RequestOpt func(r *RequestCreator)
RequestOpt represents a customisation of a request creator.
func WithExplicitBody ¶
func WithExplicitBody(e *service.InterpolatedString) RequestOpt
WithExplicitBody modifies the request creator to instead only use input reference messages for headers and metadata, and use the expression for creating a body.
func WithExplicitMultipart ¶
func WithExplicitMultipart(m []MultipartExpressions) RequestOpt
WithExplicitMultipart modifies the request creator to instead only use input reference messages for headers and metadata, and use a list of multipart expressions for creating a body.