|
|
||
|---|---|---|
| LICENSE | ||
| README.md | ||
| badgateway.go | ||
| badrequest.go | ||
| clienterror.go | ||
| conflict.go | ||
| error.go | ||
| expectationfailed.go | ||
| faileddependency.go | ||
| forbidden.go | ||
| gatewaytimeout.go | ||
| gone.go | ||
| httpversionnotsupported.go | ||
| insufficientstorage.go | ||
| internalservererror.go | ||
| lengthrequired.go | ||
| locked.go | ||
| loopdetected.go | ||
| methodnotallowed.go | ||
| misdirectedrequest.go | ||
| networkauthenticationrequired.go | ||
| notacceptable.go | ||
| notextended.go | ||
| notfound.go | ||
| notimplemented.go | ||
| paymentrequired.go | ||
| preconditionfailed.go | ||
| preconditionrequired.go | ||
| proxyauthrequired.go | ||
| requestedrangenotsatisfiable.go | ||
| requestentitytoolarge.go | ||
| requestheaderfieldstoolarge.go | ||
| requesttimeout.go | ||
| requesturitoolong.go | ||
| servererror.go | ||
| serviceunavailable.go | ||
| teapot.go | ||
| tooearly.go | ||
| toomanyrequests.go | ||
| unauthorized.go | ||
| unavailableforlegalreasons.go | ||
| unprocessableentity.go | ||
| unsupportedmediatype.go | ||
| upgraderequired.go | ||
| variantalsonegotiates.go | ||
README.md
go-errhttp
Package errhttp provides errors and types that make dealing with HTTP response errors easier, for the Go programming language.
Documention
Online documentation, which includes examples, can be found at: http://godoc.org/sourcecode.social/reiver/go-errhttp
Example
Here is an example of wrapping an error:
import "sourcecode.social/reiver/go-errhttp"
// ...
if err := something(); nil != err {
return errhttp.BadRequestWrap(err)
}
// ...
switch err.(type) {
case errhttp.BadRequest:
//@TODO
case errhttp.NotFound:
//@TODO
case errhttp.InternalServerError:
//@TODO
case errhttp.ClientError:
//@TODO
case errhttp.ServerError:
//@TODO
default:
//@TODO
}
Here is an example of using one of the package global variable errors:
import "sourcecode.social/reiver/go-errhttp"
// ...
return errhttp.ErrBadRequest
// ...
switch err.(type) {
case errhttp.BadRequest:
//@TODO
case errhttp.NotFound:
//@TODO
case errhttp.InternalServerError:
//@TODO
case errhttp.ClientError:
//@TODO
case errhttp.ServerError:
//@TODO
default:
//@TODO
}
Here is another example, where it used the .ErrHTTP() method to get the HTTP response status code:
import "sourcecode.social/reiver/go-errhttp"
// ...
return errhttp.ErrBadRequest
// ...
switch casted := err.(type) {
case errhttp.ClientError:
statuscode := casted.ErrHTTP()
http.Error(responsewriter, http.StatusText(statuscode), statuscode)
return
case errhttp.ServerError:
statuscode := casted.ErrHTTP()
http.Error(responsewriter, http.StatusText(statuscode), statuscode)
return
default:
//@TODO
}