Version: v0.0.3 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2021 License: MIT Imports: 6 Imported by: 0




View Source
const (
	// ErrUnauthorized represents failure when authenticating a request.
	ErrUnauthorized = AuthError("Unauthorized")

	// ErrForbidden represents failure when authorizing a request.
	ErrForbidden = AuthError("Forbidden")

	// ErrBasicAuthenticate is designed to trigger an HTTP Basic Auth challenge.
	ErrBasicAuthenticate = AuthError("ErrWWWAuthenticate")
View Source
const InternalErrorFormat = "Internal Server Error: %d"

InternalErrorFormat is the default error message returned for unhandled errors.


View Source
var (
	// ContentType header value.
	ContentType = "Content-Type"
	// ApplicationJSON content-type.
	ApplicationJSON = "application/json"
	// TextHTML content-type.
	TextHTML = "text/html"


func ErrorHandler

func ErrorHandler(w http.ResponseWriter, r *http.Request, err error)

ErrorHandler provides some standard handling for errors in an http request flow.

Maps: json.SyntaxError to "BadRequest", body is the JSON string of the error message. validation.Errors to "BadRequest", body is the JSON of the error object (map of field name to list of errors). AuthError to "Forbidden" or "Unauthorized" as defined by the err instance. In addition ErrBasicAuthenticate issues a basic auth challenge using default realm of "Restricted". To override handle in your custom error handlers instead.

Unhandled errors are added to the ctx and return "Internal Server Error" with the request ID to aid with troubleshooting.

func GetID

func GetID(ctx context.Context) int64

GetID returns the request ID logged to the context, otherwise 0.

func GetOp

func GetOp(ctx context.Context) string

GetOp returns the operation label logged to the context, otherwise "".

func JSONWrite

func JSONWrite(w http.ResponseWriter, code int, obj interface{}) error

JSONWrite is a simple helper utility to return the json encoded obj with appropriate content-type and code.

func SetID

func SetID(ctx context.Context, id int64) context.Context

SetID sets the request ID logged to the context.

func SetOp

func SetOp(ctx context.Context, op string) context.Context

SetOp stores a label for the current request. Useful for developer friendly log messages.


type AuthError

type AuthError string

AuthError encompasses Authentication and Authorization errors.

func (AuthError) Error

func (e AuthError) Error() string

type ContextKey

type ContextKey string

type ErrorHandlerFunc

type ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)

ErrorHandlerFunc is useful to standardize the exception management of requests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL