Package autorest implements an HTTP request pipeline suitable for use across
multiple go-routines and provides the shared routines relied on by AutoRest
(see https://github.com/Azure/autorest/) generated Go code.
.
The package breaks sending and responding to HTTP requests into three phases:
Preparing, Sending, and Responding.
.
Each phase relies on decorators to modify and / or manage processing.
Decorators may first modify and then pass the data along, pass the data first
and then modify the result, or wrap themselves around passing the data (such as
a logger might do). Decorators run in the order provided.
.
Preparers and Responders may be shared and re-used (assuming the underlying
decorators support sharing and re-use). Performant use is obtained by creating
one or more Preparers and Responders shared among multiple go-routines, and a
single Sender shared among multiple sending go-routines, all bound together by
means of input / output channels.
.
Decorators hold their passed state within a closure (such as the path
components in the example above). Be careful to share Preparers and Responders
only in a context where such held state applies. For example, it may not make
sense to share a Preparer that applies a query string from a fixed set of
values. Similarly, sharing a Responder that reads the response body into a
passed struct (e.g., ByUnmarshallingJson) is likely incorrect.
.
Lastly, the Swagger specification (https://swagger.io) that drives AutoRest
(https://github.com/Azure/autorest/) precisely defines two date forms: date and
date-time. The github.com/Azure/go-autorest/autorest/date package provides
time.Time derivations to ensure correct parsing and formatting.
.
Errors raised by autorest objects and methods will conform to the
autorest.Error interface.
Installed Size: 881.7 kB
Architectures: all