Documentation ¶
Index ¶
- type Pipeline
- type Policy
- type PolicyFunc
- type Request
- func (req *Request) Body() io.ReadSeekCloser
- func (req *Request) Clone(ctx context.Context) *Request
- func (req *Request) Close() error
- func (req *Request) Next() (*http.Response, error)
- func (req *Request) OperationValue(value interface{}) bool
- func (req *Request) Raw() *http.Request
- func (req *Request) RewindBody() error
- func (req *Request) SetBody(body io.ReadSeekCloser, contentType string) error
- func (req *Request) SetOperationValue(value interface{})
- type Transporter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline represents a primitive for sending HTTP requests and receiving responses. Its behavior can be extended by specifying policies during construction.
func NewPipeline ¶
func NewPipeline(transport Transporter, policies ...Policy) Pipeline
NewPipeline creates a new Pipeline object from the specified Policies.
type Policy ¶
type Policy interface { // Do applies the policy to the specified Request. When implementing a Policy, mutate the // request before calling req.Next() to move on to the next policy, and respond to the result // before returning to the caller. Do(req *Request) (*http.Response, error) }
Policy represents an extensibility point for the Pipeline that can mutate the specified Request and react to the received Response.
type PolicyFunc ¶
PolicyFunc is a type that implements the Policy interface. Use this type when implementing a stateless policy as a first-class function.
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
Request is an abstraction over the creation of an HTTP request as it passes through the pipeline. Don't use this type directly, use NewRequest() instead.
func NewRequest ¶
NewRequest creates a new Request with the specified input.
func (*Request) Body ¶
func (req *Request) Body() io.ReadSeekCloser
Body returns the original body specified when the Request was created.
func (*Request) Next ¶
Next calls the next policy in the pipeline. If there are no more policies, nil and an error are returned. This method is intended to be called from pipeline policies. To send a request through a pipeline call Pipeline.Do().
func (*Request) OperationValue ¶
OperationValue looks for a value set by SetOperationValue().
func (*Request) RewindBody ¶
RewindBody seeks the request's Body stream back to the beginning so it can be resent when retrying an operation.
func (*Request) SetBody ¶
func (req *Request) SetBody(body io.ReadSeekCloser, contentType string) error
SetBody sets the specified ReadSeekCloser as the HTTP request body.
func (*Request) SetOperationValue ¶
func (req *Request) SetOperationValue(value interface{})
SetOperationValue adds/changes a mutable key/value associated with a single operation.