errors

package module
v0.20.2 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2021 License: Apache-2.0 Imports: 6 Imported by: 18,467

README

OpenAPI errors

Build Status codecov Slack Status license Go Reference GolangCI Go Report Card

Shared errors and error interface used throughout the various libraries found in the go-openapi toolkit.

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

View Source
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

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 the error handler interface implementation

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) Code

func (c *CompositeError) Code() int32

Code for this error

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) 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

type Error interface {
	error
	Code() int32
}

Error represents a error interface all swagger framework errors implement

func MethodNotAllowed

func MethodNotAllowed(requested string, allow []string) Error

MethodNotAllowed creates a new method not allowed error

func New

func New(code int32, message string, args ...interface{}) Error

New creates a new API error with a code and a message

func NotFound

func NotFound(message string, args ...interface{}) Error

NotFound creates a new not found error

func NotImplemented

func NotImplemented(message string) Error

NotImplemented creates a new not implemented error

func Unauthenticated

func Unauthenticated(scheme string) Error

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) Code

func (e *Validation) Code() int32

Code the error code

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL