Documentation ¶
Index ¶
- Constants
- Variables
- func DecompressResponse(resp http.Response) (io.ReadCloser, http.Header, error)
- type BasicProblemDecoder
- type Client
- type GzipReader
- type HTTPError
- type Option
- func WithBaseURL(baseURL string) Option
- func WithCustomTransport(transport http.RoundTripper) Option
- func WithDatadogTracing(opts ...dd_http.RoundTripperOption) Option
- func WithDefaultHeader(header, value string) Option
- func WithOpenCensusTracing() Option
- func WithProblemDecoder(decoder ProblemDecoder) Option
- func WithTimeout(timeout time.Duration) Option
- func WithTokenProvider(provider auth.TokenProvider) Option
- type ProblemDecoder
- type Request
- func Connect(uriTemplate string) *Request
- func Delete(uriTemplate string) *Request
- func Get(uriTemplate string) *Request
- func Head(uriTemplate string) *Request
- func NewRequest(method, uriTemplate string) *Request
- func Options(uriTemplate string) *Request
- func Patch(uriTemplate string) *Request
- func Post(uriTemplate string) *Request
- func Put(uriTemplate string) *Request
- func Trace(uriTemplate string) *Request
- func (r *Request) Assign(variable string, value interface{}) *Request
- func (r *Request) ExpandURL(baseURL *url.URL) (*url.URL, error)
- func (r *Request) SetHeader(key, value string) *Request
- func (r *Request) WithFollowRedirects(follow bool) *Request
- func (r *Request) WithJSONPayload(payload interface{}) *Request
- func (r *Request) WithPayload(contentType string, payload io.Reader) *Request
- type Response
Constants ¶
const ( DefaultUserAgent string = "go-rest-utility/v1" DefaultAcceptEncoding string = "gzip" )
Variables ¶
var ( ErrBadRequest = newHTTPError(http.StatusBadRequest) ErrPaymentRequired = newHTTPError(http.StatusPaymentRequired) ErrForbidden = newHTTPError(http.StatusForbidden) ErrNotFound = newHTTPError(http.StatusNotFound) ErrMethodNotAllowed = newHTTPError(http.StatusMethodNotAllowed) ErrNotAcceptable = newHTTPError(http.StatusNotAcceptable) ErrProxyAuthRequired = newHTTPError(http.StatusProxyAuthRequired) ErrRequestTimeout = newHTTPError(http.StatusRequestTimeout) ErrConflict = newHTTPError(http.StatusConflict) ErrGone = newHTTPError(http.StatusGone) ErrLengthRequired = newHTTPError(http.StatusLengthRequired) ErrPreconditionFailed = newHTTPError(http.StatusPreconditionFailed) ErrRequestEntityTooLarge = newHTTPError(http.StatusRequestEntityTooLarge) ErrRequestURITooLong = newHTTPError(http.StatusRequestURITooLong) ErrUnsupportedMediaType = newHTTPError(http.StatusUnsupportedMediaType) ErrRequestedRangeNotSatisfiable = newHTTPError(http.StatusRequestedRangeNotSatisfiable) ErrExpectationFailed = newHTTPError(http.StatusExpectationFailed) ErrTeapot = newHTTPError(http.StatusTeapot) ErrMisdirectedRequest = newHTTPError(http.StatusMisdirectedRequest) ErrUnprocessableEntity = newHTTPError(http.StatusUnprocessableEntity) ErrLocked = newHTTPError(http.StatusLocked) ErrFailedDependency = newHTTPError(http.StatusFailedDependency) ErrTooEarly = newHTTPError(http.StatusTooEarly) ErrUpgradeRequired = newHTTPError(http.StatusUpgradeRequired) ErrPreconditionRequired = newHTTPError(http.StatusPreconditionRequired) ErrTooManyRequests = newHTTPError(http.StatusTooManyRequests) ErrRequestHeaderFieldsTooLarge = newHTTPError(http.StatusRequestHeaderFieldsTooLarge) ErrInternalServerError = newHTTPError(http.StatusInternalServerError) ErrNotImplemented = newHTTPError(http.StatusNotImplemented) ErrBadGateway = newHTTPError(http.StatusBadGateway) ErrGatewayTimeout = newHTTPError(http.StatusGatewayTimeout) ErrHTTPVersionNotSupported = newHTTPError(http.StatusHTTPVersionNotSupported) ErrVariantAlsoNegotiates = newHTTPError(http.StatusVariantAlsoNegotiates) ErrInsufficientStorage = newHTTPError(http.StatusInsufficientStorage) ErrLoopDetected = newHTTPError(http.StatusLoopDetected) ErrNotExtended = newHTTPError(http.StatusNotExtended) ErrNetworkAuthenticationRequired = newHTTPError(http.StatusNetworkAuthenticationRequired) )
Functions ¶
func DecompressResponse ¶ added in v0.10.1
DecompressResponse takes a http response and returns a decompressed http.Body and a set of headers that matches the decompressed result. If the content-length header is 0, return the body and the header without decompressing.
Types ¶
type BasicProblemDecoder ¶ added in v0.6.0
type BasicProblemDecoder struct{}
func (*BasicProblemDecoder) DecodeProblem ¶ added in v0.6.0
type Client ¶
type Client struct { BaseURL *url.URL TokenProvider auth.TokenProvider // contains filtered or unexported fields }
type GzipReader ¶ added in v0.10.1
func (*GzipReader) Close ¶ added in v0.10.1
func (r *GzipReader) Close() error
type Option ¶
type Option func(*Client)
func WithBaseURL ¶
func WithCustomTransport ¶ added in v0.13.0
func WithCustomTransport(transport http.RoundTripper) Option
WithCustomTransport overwrites the default or otherwise configured http.RoundTripper transport on the underlying http.Client.
Not that WithOpenCensusTracing also sets a custom http.RoundTripper transport, you may not use both.
func WithDatadogTracing ¶ added in v0.2.0
func WithDatadogTracing(opts ...dd_http.RoundTripperOption) Option
WithDatadogTracing will add a Datadog transport to the client so that it will automatically inject trace-headers.
Should be used when you trace your application with Datadog.
Note, when used in AWS Lambda, make sure to set the service name.
client.WithDatadogTracing( dd_http.RTWithServiceName("<service_name>"), )
func WithDefaultHeader ¶ added in v0.5.1
func WithOpenCensusTracing ¶ added in v0.2.0
func WithOpenCensusTracing() Option
WithOpenCensusTracing will add an OpenCensus transport to the client so that it will automatically inject trace-headers.
Should be used when you trace your application with OpenCensus.
func WithProblemDecoder ¶ added in v0.6.0
func WithProblemDecoder(decoder ProblemDecoder) Option
func WithTimeout ¶ added in v0.10.2
WithTimeout sets http client timeout
The default timeout of zero means no timeout.
The Client cancels requests to the underlying Transport as if the Request's Context ended.
func WithTokenProvider ¶
func WithTokenProvider(provider auth.TokenProvider) Option
type ProblemDecoder ¶ added in v0.6.0
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func NewRequest ¶
func (*Request) ExpandURL ¶
ExpandURL combines the baseURL with the expanded URI template to form the final URL to be used for this Request. If no baseURL is provided the returned URL is just the expanded URI template