Documentation ¶
Overview ¶
Package rest has generic implementations of resources used for REST responses
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrorResponder ¶ added in v1.2.0
type ErrorResponder interface {
Error(err error)
}
ErrorResponder abstracts error reporting to the proxy handler to remove the need to hardcode a particular error format.
type GenericHttpResponseChecker ¶ added in v1.2.0
type GenericHttpResponseChecker struct { QualifiedResource unversioned.GroupResource Name string }
A generic http response checker to transform the error.
func NewGenericHttpResponseChecker ¶ added in v1.2.0
func NewGenericHttpResponseChecker(qualifiedResource unversioned.GroupResource, name string) GenericHttpResponseChecker
type HttpResponseChecker ¶ added in v1.2.0
Check the http error status from a location URL. And convert an error into a structured API object. Finally ensure we close the body before returning the error
type LocationStreamer ¶
type LocationStreamer struct { Location *url.URL Transport http.RoundTripper ContentType string Flush bool ResponseChecker HttpResponseChecker }
LocationStreamer is a resource that streams the contents of a particular location URL
func (*LocationStreamer) GetObjectKind ¶ added in v1.2.0
func (obj *LocationStreamer) GetObjectKind() unversioned.ObjectKind
func (*LocationStreamer) InputStream ¶
func (s *LocationStreamer) InputStream(apiVersion, acceptHeader string) (stream io.ReadCloser, flush bool, contentType string, err error)
InputStream returns a stream with the contents of the URL location. If no location is provided, a null stream is returned.
type UpgradeAwareProxyHandler ¶ added in v0.16.0
type UpgradeAwareProxyHandler struct { UpgradeRequired bool Location *url.URL // Transport provides an optional round tripper to use to proxy. If nil, the default proxy transport is used Transport http.RoundTripper // WrapTransport indicates whether the provided Transport should be wrapped with default proxy transport behavior (URL rewriting, X-Forwarded-* header setting) WrapTransport bool // InterceptRedirects determines whether the proxy should sniff backend responses for redirects, // following them as necessary. InterceptRedirects bool FlushInterval time.Duration MaxBytesPerSec int64 Responder ErrorResponder }
UpgradeAwareProxyHandler is a handler for proxy requests that may require an upgrade
func NewUpgradeAwareProxyHandler ¶ added in v0.16.0
func NewUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired bool, responder ErrorResponder) *UpgradeAwareProxyHandler
NewUpgradeAwareProxyHandler creates a new proxy handler with a default flush interval. Responder is required for returning errors to the caller.
func (*UpgradeAwareProxyHandler) ServeHTTP ¶ added in v0.16.0
func (h *UpgradeAwareProxyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request)
ServeHTTP handles the proxy request