Documentation ¶
Overview ¶
Package httpapi provides common encoding and middleware for an HTTP API.
Index ¶
- func ErrorResponse(w http.ResponseWriter, err error)
- func GetToken(r *http.Request) *auth.Token
- func GetUserID(r *http.Request) string
- func JSONResponse(w http.ResponseWriter, v interface{}, statusCode int)
- func ToHandlerFunc(jsonHandler JSONAPIHandler, successCode int) http.HandlerFunc
- type JSONAPIHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrorResponse ¶
func ErrorResponse(w http.ResponseWriter, err error)
ErrorResponse writes an error response. Domain errors are returned to the client. Any other errors, will resolve to 500 error response.
func JSONResponse ¶
func JSONResponse(w http.ResponseWriter, v interface{}, statusCode int)
JSONResponse writes a response body. If a struct is provided and we are unable to marshal it, we return an internal error.
func ToHandlerFunc ¶
func ToHandlerFunc(jsonHandler JSONAPIHandler, successCode int) http.HandlerFunc
ToHandlerFunc adapts a JSONAPIHandler into net/http's HandlerFunc.
Types ¶
type JSONAPIHandler ¶
type JSONAPIHandler func(w http.ResponseWriter, r *http.Request) (interface{}, error)
JSONAPIHandler is an HTTP handler for a JSON API.
func AuthMiddleware ¶
func AuthMiddleware(jsonHandler JSONAPIHandler, tokenSvc auth.TokenService, state auth.TokenState) JSONAPIHandler
AuthMiddleware validates an Authorization header if available.
func ErrorLoggingMiddleware ¶
func ErrorLoggingMiddleware(jsonHandler JSONAPIHandler, source string, log log.Logger) JSONAPIHandler
ErrorLoggingMiddleware logs any errors that are returned before being parsed to an HTTP response.
Click to show internal directories.
Click to hide internal directories.