Documentation ¶
Overview ¶
Package errors provides an Error interface and several concrete types implementing this interface to manage API errors and JSON-schema validation errors.
A middleware handler ServeError() is provided to serve the errors types it defines.
It is used throughout the various go-openapi toolkit libraries (https://github.com/go-openapi).
Index ¶
- Constants
- Variables
- func ServeError(rw http.ResponseWriter, r *http.Request, err error)
- type APIVerificationFailed
- type CompositeError
- type Error
- type MethodNotAllowedError
- type ParseError
- type Validation
- func AdditionalItemsNotAllowed(name, in string) *Validation
- func DuplicateItems(name, in string) *Validation
- func EnumFail(name, in string, value interface{}, values []interface{}) *Validation
- func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation
- func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation
- func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation
- func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation
- func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation
- func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation
- func FailedAllPatternProperties(name, in, key string) *Validation
- func FailedPattern(name, in, pattern string) *Validation
- func InvalidCollectionFormat(name, in, format string) *Validation
- func InvalidContentType(value string, allowed []string) *Validation
- func InvalidResponseFormat(value string, allowed []string) *Validation
- func InvalidType(name, in, typeName string, value interface{}) *Validation
- func InvalidTypeName(typeName string) *Validation
- func MultipleOfMustBePositive(name, in string, factor interface{}) *Validation
- func NotMultipleOf(name, in string, multiple interface{}) *Validation
- func PropertyNotAllowed(name, in, key string) *Validation
- func Required(name, in string) *Validation
- func TooFewItems(name, in string, min int64) *Validation
- func TooFewProperties(name, in string, n int64) *Validation
- func TooLong(name, in string, max int64) *Validation
- func TooManyItems(name, in string, max int64) *Validation
- func TooManyProperties(name, in string, n int64) *Validation
- func TooShort(name, in string, min int64) *Validation
Constants ¶
const ( // CompositeErrorCode remains 422 for backwards-compatibility // and to separate it from validation errors with cause CompositeErrorCode = 422 // InvalidTypeCode is used for any subclass of invalid types InvalidTypeCode = 600 + iota RequiredFailCode TooLongFailCode TooShortFailCode PatternFailCode EnumFailCode MultipleOfFailCode MaxFailCode MinFailCode UniqueFailCode MaxItemsFailCode MinItemsFailCode NoAdditionalItemsCode TooFewPropertiesCode TooManyPropertiesCode UnallowedPropertyCode FailedAllPatternPropsCode MultipleOfMustBePositiveCode )
All code responses can be used to differentiate errors for different handling by the consuming program
Variables ¶
var DefaultHTTPCode = http.StatusUnprocessableEntity
DefaultHTTPCode is used when the error Code cannot be used as an HTTP code.
Functions ¶
Types ¶
type APIVerificationFailed ¶
type APIVerificationFailed struct { Section string MissingSpecification []string MissingRegistration []string }
APIVerificationFailed is an error that contains all the missing info for a mismatched section between the api registrations and the api spec
func (*APIVerificationFailed) Error ¶
func (v *APIVerificationFailed) Error() string
type CompositeError ¶
type CompositeError struct { Errors []error // contains filtered or unexported fields }
CompositeError is an error that groups several errors together
func CompositeValidationError ¶
func CompositeValidationError(errors ...error) *CompositeError
CompositeValidationError an error to wrap a bunch of other errors
func (*CompositeError) Error ¶
func (c *CompositeError) Error() string
type Error ¶
Error represents a error interface all swagger framework errors implement
func MethodNotAllowed ¶
MethodNotAllowed creates a new method not allowed error
func New ¶
New creates a new API error with a code and a message
func NotFound ¶
NotFound creates a new not found error
func NotImplemented ¶
NotImplemented creates a new not implemented error
type MethodNotAllowedError ¶
type MethodNotAllowedError struct { Allowed []string // contains filtered or unexported fields }
MethodNotAllowedError represents an error for when the path matches but the method doesn't
func (*MethodNotAllowedError) Code ¶
func (m *MethodNotAllowedError) Code() int32
Code the error code
func (*MethodNotAllowedError) Error ¶
func (m *MethodNotAllowedError) Error() string
type ParseError ¶
type ParseError struct { Name string In string Value string Reason error // contains filtered or unexported fields }
ParseError respresents a parsing error
func NewParseError ¶
func NewParseError(name, in, value string, reason error) *ParseError
NewParseError creates a new parse error
func (*ParseError) Code ¶
func (e *ParseError) Code() int32
Code returns the http status code for this error
func (*ParseError) Error ¶
func (e *ParseError) Error() string
type Validation ¶
type Validation struct { Name string In string Value interface{} Values []interface{} // contains filtered or unexported fields }
Validation represents a failure of a precondition
func AdditionalItemsNotAllowed ¶
func AdditionalItemsNotAllowed(name, in string) *Validation
AdditionalItemsNotAllowed an error for invalid additional items
func DuplicateItems ¶
func DuplicateItems(name, in string) *Validation
DuplicateItems error for when an array contains duplicates
func EnumFail ¶
func EnumFail(name, in string, value interface{}, values []interface{}) *Validation
EnumFail error for when an enum validation fails
func ExceedsMaximum ¶
func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation
ExceedsMaximum error for when maxinum validation fails
func ExceedsMaximumInt ¶
func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation
ExceedsMaximumInt error for when maxinum validation fails
func ExceedsMaximumUint ¶
func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation
ExceedsMaximumUint error for when maxinum validation fails
func ExceedsMinimum ¶
func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation
ExceedsMinimum error for when maxinum validation fails
func ExceedsMinimumInt ¶
func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation
ExceedsMinimumInt error for when maxinum validation fails
func ExceedsMinimumUint ¶
func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation
ExceedsMinimumUint error for when maxinum validation fails
func FailedAllPatternProperties ¶
func FailedAllPatternProperties(name, in, key string) *Validation
FailedAllPatternProperties an error for when the property doesn't match a pattern
func FailedPattern ¶
func FailedPattern(name, in, pattern string) *Validation
FailedPattern error for when a string fails a regex pattern match the pattern that is returned is the ECMA syntax version of the pattern not the golang version.
func InvalidCollectionFormat ¶
func InvalidCollectionFormat(name, in, format string) *Validation
InvalidCollectionFormat another flavor of invalid type error
func InvalidContentType ¶
func InvalidContentType(value string, allowed []string) *Validation
InvalidContentType error for an invalid content type
func InvalidResponseFormat ¶
func InvalidResponseFormat(value string, allowed []string) *Validation
InvalidResponseFormat error for an unacceptable response format request
func InvalidType ¶
func InvalidType(name, in, typeName string, value interface{}) *Validation
InvalidType creates an error for when the type is invalid
func InvalidTypeName ¶
func InvalidTypeName(typeName string) *Validation
InvalidTypeName an error for when the type is invalid
func MultipleOfMustBePositive ¶
func MultipleOfMustBePositive(name, in string, factor interface{}) *Validation
MultipleOfMustBePositive error for when a multipleOf factor is negative
func NotMultipleOf ¶
func NotMultipleOf(name, in string, multiple interface{}) *Validation
NotMultipleOf error for when multiple of validation fails
func PropertyNotAllowed ¶
func PropertyNotAllowed(name, in, key string) *Validation
PropertyNotAllowed an error for when the property doesn't match a pattern
func Required ¶
func Required(name, in string) *Validation
Required error for when a value is missing
func TooFewItems ¶
func TooFewItems(name, in string, min int64) *Validation
TooFewItems error for when an array contains too few items
func TooFewProperties ¶
func TooFewProperties(name, in string, n int64) *Validation
TooFewProperties an error for an object with too few properties
func TooLong ¶
func TooLong(name, in string, max int64) *Validation
TooLong error for when a string is too long
func TooManyItems ¶
func TooManyItems(name, in string, max int64) *Validation
TooManyItems error for when an array contains too many items
func TooManyProperties ¶
func TooManyProperties(name, in string, n int64) *Validation
TooManyProperties an error for an object with too many properties
func TooShort ¶
func TooShort(name, in string, min int64) *Validation
TooShort error for when a string is too short
func (*Validation) Error ¶
func (e *Validation) Error() string
func (*Validation) ValidateName ¶
func (e *Validation) ValidateName(name string) *Validation
ValidateName produces an error message name for an aliased property