Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BasicAuth

func BasicAuth(r *http.Request) (username, password string, ok bool)

BasicAuth parses a username and password from the request's Authorization header. This was pulled from golang master: https://codereview.appspot.com/76540043

func Cacheable

func Cacheable(hdr http.Header) (time.Duration, bool, error)

func CopyRequest

func CopyRequest(r *http.Request) *http.Request

CopyRequest returns a clone of the provided *http.Request. The returned object is a shallow copy of the struct and a deep copy of its Header field.

func MergeQuery

func MergeQuery(u url.URL, q url.Values) url.URL

MergeQuery appends additional query values to an existing URL.

func NewResourceLocation

func NewResourceLocation(reqURL *url.URL, id string) string

NewResourceLocation appends a resource id to the end of the requested URL path.

func ParseNonEmptyURL

func ParseNonEmptyURL(u string) (*url.URL, error)

ParseNonEmptyURL checks that a string is a parsable URL which is also not empty since `url.Parse("")` does not return an error. Must contian a scheme and a host.

func WriteError

func WriteError(w http.ResponseWriter, code int, msg string)

Types

type Client

type Client interface {
	Do(*http.Request) (*http.Response, error)
}

type HandlerClient

type HandlerClient struct {
	Handler http.Handler
}

func (*HandlerClient) Do

func (hc *HandlerClient) Do(r *http.Request) (*http.Response, error)

type LoggingMiddleware

type LoggingMiddleware struct {
	Next http.Handler
}

func (*LoggingMiddleware) ServeHTTP

func (l *LoggingMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request)

type RequestRecorder

type RequestRecorder struct {
	Response *http.Response
	Error    error

	Request *http.Request
}

func (*RequestRecorder) Do

func (rr *RequestRecorder) Do(req *http.Request) (*http.Response, error)

func (*RequestRecorder) RoundTrip

func (rr *RequestRecorder) RoundTrip(req *http.Request) (*http.Response, error)