+++ /dev/null
-package httpjson
-
-import (
- "context"
- "net/http"
-)
-
-// key is an unexported type for keys defined in this package.
-// This prevents collisions with keys defined in other packages.
-type key int
-
-// Keys for HTTP objects in Contexts.
-// They are unexported; clients use Request and ResponseWriter
-// instead of using these keys directly.
-const (
- reqKey key = iota
- respKey
-)
-
-// Request returns the HTTP request stored in ctx.
-// If there is none, it panics.
-// The context given to a handler function
-// registered in this package is guaranteed to have
-// a request.
-func Request(ctx context.Context) *http.Request {
- return ctx.Value(reqKey).(*http.Request)
-}
-
-// ResponseWriter returns the HTTP response writer stored in ctx.
-// If there is none, it panics.
-// The context given to a handler function
-// registered in this package is guaranteed to have
-// a response writer.
-func ResponseWriter(ctx context.Context) http.ResponseWriter {
- return ctx.Value(respKey).(http.ResponseWriter)
-}
-
-// WithRequest returns a context with an HTTP request stored in it.
-// It is useful for testing.
-func WithRequest(ctx context.Context, req *http.Request) context.Context {
- return context.WithValue(ctx, reqKey, req)
-}