Package errhttp provides errors and types that make dealing with HTTP response errors easier, for the Go programming language.
Go to file
Charles Iliya Krempeaux 271a6f53ca .ServeHTTP 2024-03-20 13:54:11 -07:00
LICENSE initial commit 2017-02-06 12:57:57 -08:00
README.md made .ErrHTTP() method return the HTTP status code (as an int). added some missing error. removed some errors that should not have been there. 2023-08-14 06:56:09 -07:00
badgateway.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
badrequest.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
clienterror.go client errors 2017-02-06 12:58:13 -08:00
conflict.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
errbadgateway_test.go some fixes 2023-10-01 11:30:28 +09:00
errbadrequest_test.go some fixes 2023-10-01 11:30:28 +09:00
errconflict_test.go some fixes 2023-10-01 11:30:28 +09:00
errexpectationfailed_test.go some fixes 2023-10-01 11:30:28 +09:00
errfaileddependency_test.go some fixes 2023-10-01 11:30:28 +09:00
errforbidden_test.go some fixes 2023-10-01 11:30:28 +09:00
errgatewaytimeout_test.go some fixes 2023-10-01 11:30:28 +09:00
errgone_test.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
errhttpversionnotsupported_test.go some fixes 2023-10-01 11:30:28 +09:00
errinsufficientstorage_test.go some fixes 2023-10-01 11:30:28 +09:00
errinternalservererror_test.go some fixes 2023-10-01 11:30:28 +09:00
errlengthrequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errlocked_test.go some fixes 2023-10-01 11:30:28 +09:00
errloopdetected_test.go some fixes 2023-10-01 11:30:28 +09:00
errmethodnotallowed_test.go some fixes 2023-10-01 11:30:28 +09:00
errmisdirectedrequest_test.go some fixes 2023-10-01 11:30:28 +09:00
errnetworkauthenticationrequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errnotacceptable_test.go some fixes 2023-10-01 11:30:28 +09:00
errnotextended_test.go some fixes 2023-10-01 11:30:28 +09:00
errnotfound_test.go some fixes 2023-10-01 11:30:28 +09:00
errnotimplemented_test.go some fixes 2023-10-01 11:30:28 +09:00
error.go made .ErrHTTP() method return the HTTP status code (as an int). added some missing error. removed some errors that should not have been there. 2023-08-14 06:56:09 -07:00
errpaymentrequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errpreconditionfailed_test.go some fixes 2023-10-01 11:30:28 +09:00
errpreconditionrequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errproxyauthrequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errrequestedrangenotsatisfiable_test.go some fixes 2023-10-01 11:30:28 +09:00
errrequestentitytoolarge_test.go some fixes 2023-10-01 11:30:28 +09:00
errrequestheaderfieldstoolarge_test.go some fixes 2023-10-01 11:30:28 +09:00
errrequesttimeout_test.go some fixes 2023-10-01 11:30:28 +09:00
errrequesturitoolong_test.go some fixes 2023-10-01 11:30:28 +09:00
errserviceunavailable_test.go some fixes 2023-10-01 11:30:28 +09:00
errteapot_test.go some fixes 2023-10-01 11:30:28 +09:00
errtooearly_test.go some fixes 2023-10-01 11:30:28 +09:00
errtoomanyrequests_test.go some fixes 2023-10-01 11:30:28 +09:00
errunauthorized_test.go some fixes 2023-10-01 11:30:28 +09:00
errunavailableforlegalreasons_test.go some fixes 2023-10-01 11:30:28 +09:00
errunprocessableentity_test.go some fixes 2023-10-01 11:30:28 +09:00
errunsupportedmediatype_test.go some fixes 2023-10-01 11:30:28 +09:00
errupgraderequired_test.go some fixes 2023-10-01 11:30:28 +09:00
errvariantalsonegotiates_test.go some fixes 2023-10-01 11:30:28 +09:00
expectationfailed.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
faileddependency.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
forbidden.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
gatewaytimeout.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
gone.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
httpversionnotsupported.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
insufficientstorage.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
internalservererror.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
lengthrequired.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
locked.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
loopdetected.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
methodnotallowed.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
misdirectedrequest.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
networkauthenticationrequired.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
notacceptable.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
notextended.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
notfound.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
notimplemented.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
paymentrequired.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
preconditionfailed.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
preconditionrequired.go some fixes 2023-10-01 11:30:28 +09:00
proxyauthrequired.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
requestedrangenotsatisfiable.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
requestentitytoolarge.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
requestheaderfieldstoolarge.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
requesttimeout.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
requesturitoolong.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
return.go errhttp.Return() 2024-02-21 12:30:28 -08:00
servehttp.go .ServeHTTP 2024-03-20 13:54:11 -07:00
servererror.go client errors 2017-02-06 12:58:13 -08:00
serviceunavailable.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
teapot.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
tooearly.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
toomanyrequests.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
unauthorized.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
unavailableforlegalreasons.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
unprocessableentity.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
unsupportedmediatype.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
upgraderequired.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00
variantalsonegotiates.go corrected Gone error + created new package global errors 2023-10-17 22:32:39 -07:00

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

GoDoc

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
	}