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, value interface{}) *Validation
- func ExceedsMaximumInt(name, in string, max int64, exclusive bool, value interface{}) *Validation
- func ExceedsMaximumUint(name, in string, max uint64, exclusive bool, value interface{}) *Validation
- func ExceedsMinimum(name, in string, min float64, exclusive bool, value interface{}) *Validation
- func ExceedsMinimumInt(name, in string, min int64, exclusive bool, value interface{}) *Validation
- func ExceedsMinimumUint(name, in string, min uint64, exclusive bool, value interface{}) *Validation
- func FailedAllPatternProperties(name, in, key string) *Validation
- func FailedPattern(name, in, pattern string, value interface{}) *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, value interface{}) *Validation
- func PropertyNotAllowed(name, in, key string) *Validation
- func ReadOnly(name, in string, value interface{}) *Validation
- func Required(name, in string, value interface{}) *Validation
- func TooFewItems(name, in string, min int64, value interface{}) *Validation
- func TooFewProperties(name, in string, n int64) *Validation
- func TooLong(name, in string, max int64, value interface{}) *Validation
- func TooManyItems(name, in string, max int64, value interface{}) *Validation
- func TooManyProperties(name, in string, n int64) *Validation
- func TooShort(name, in string, min int64, value interface{}) *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 ReadOnlyFailCode )
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 ¶
func ServeError ¶
func ServeError(rw http.ResponseWriter, r *http.Request, err error)
ServeError implements the http error handler interface
Types ¶
type APIVerificationFailed ¶
type APIVerificationFailed struct { Section string `json:"section,omitempty"` MissingSpecification []string `json:"missingSpecification,omitempty"` MissingRegistration []string `json:"missingRegistration,omitempty"` }
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
func (CompositeError) MarshalJSON ¶ added in v0.20.0
func (c CompositeError) MarshalJSON() ([]byte, error)
MarshalJSON implements the JSON encoding interface
func (*CompositeError) Unwrap ¶ added in v0.21.0
func (c *CompositeError) Unwrap() []error
func (*CompositeError) ValidateName ¶ added in v0.20.1
func (c *CompositeError) ValidateName(name string) *CompositeError
ValidateName recursively sets the name for all validations or updates them for nested properties
type Error ¶
Error represents a error interface all swagger framework errors implement
func MethodNotAllowed ¶
MethodNotAllowed creates a new method not allowed error
func NotImplemented ¶
NotImplemented creates a new not implemented error
func Unauthenticated ¶
Unauthenticated returns an unauthenticated 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
func (MethodNotAllowedError) MarshalJSON ¶ added in v0.20.0
func (m MethodNotAllowedError) MarshalJSON() ([]byte, error)
MarshalJSON implements the JSON encoding interface
type ParseError ¶
type ParseError struct { Name string In string Value string Reason error // contains filtered or unexported fields }
ParseError represents 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
func (ParseError) MarshalJSON ¶ added in v0.20.0
func (e ParseError) MarshalJSON() ([]byte, error)
MarshalJSON implements the JSON encoding interface
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, value interface{}) *Validation
ExceedsMaximum error for when maximum validation fails
func ExceedsMaximumInt ¶
func ExceedsMaximumInt(name, in string, max int64, exclusive bool, value interface{}) *Validation
ExceedsMaximumInt error for when maximum validation fails
func ExceedsMaximumUint ¶
func ExceedsMaximumUint(name, in string, max uint64, exclusive bool, value interface{}) *Validation
ExceedsMaximumUint error for when maximum validation fails
func ExceedsMinimum ¶
func ExceedsMinimum(name, in string, min float64, exclusive bool, value interface{}) *Validation
ExceedsMinimum error for when minimum validation fails
func ExceedsMinimumInt ¶
func ExceedsMinimumInt(name, in string, min int64, exclusive bool, value interface{}) *Validation
ExceedsMinimumInt error for when minimum validation fails
func ExceedsMinimumUint ¶
func ExceedsMinimumUint(name, in string, min uint64, exclusive bool, value interface{}) *Validation
ExceedsMinimumUint error for when minimum 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, value interface{}) *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, value 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 ReadOnly ¶ added in v0.19.7
func ReadOnly(name, in string, value interface{}) *Validation
ReadOnly error for when a value is present in request
func Required ¶
func Required(name, in string, value interface{}) *Validation
Required error for when a value is missing
func TooFewItems ¶
func TooFewItems(name, in string, min int64, value interface{}) *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, value interface{}) *Validation
TooLong error for when a string is too long
func TooManyItems ¶
func TooManyItems(name, in string, max int64, value interface{}) *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, value interface{}) *Validation
TooShort error for when a string is too short
func (*Validation) Error ¶
func (e *Validation) Error() string
func (Validation) MarshalJSON ¶ added in v0.20.0
func (e Validation) MarshalJSON() ([]byte, error)
MarshalJSON implements the JSON encoding interface
func (*Validation) ValidateName ¶
func (e *Validation) ValidateName(name string) *Validation
ValidateName sets the name for a validation or updates it for a nested property