errors – github.com/go-openapi/errors Index | Files

package errors

import "github.com/go-openapi/errors"

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

const (
	// CompositeErrorCode remains 422 for backwards-compatibility
	// and to separate it from validation errors with cause
	CompositeErrorCode = http.StatusUnprocessableEntity

	// InvalidTypeCode is used for any subclass of invalid types
	InvalidTypeCode = maximumValidHTTPCode + 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) Code

func (c *CompositeError) Code() int32

Code for this error

func (*CompositeError) Error

func (c *CompositeError) Error() string

func (CompositeError) MarshalJSON

func (c CompositeError) MarshalJSON() ([]byte, error)

MarshalJSON implements the JSON encoding interface

func (*CompositeError) Unwrap

func (c *CompositeError) Unwrap() []error

func (*CompositeError) ValidateName

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

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

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, maximum float64, exclusive bool, value interface{}) *Validation

ExceedsMaximum error for when maximumimum validation fails

func ExceedsMaximumInt

func ExceedsMaximumInt(name, in string, maximum int64, exclusive bool, value interface{}) *Validation

ExceedsMaximumInt error for when maximumimum validation fails

func ExceedsMaximumUint

func ExceedsMaximumUint(name, in string, maximum uint64, exclusive bool, value interface{}) *Validation

ExceedsMaximumUint error for when maximumimum validation fails

func ExceedsMinimum

func ExceedsMinimum(name, in string, minimum float64, exclusive bool, value interface{}) *Validation

ExceedsMinimum error for when minimum validation fails

func ExceedsMinimumInt

func ExceedsMinimumInt(name, in string, minimum int64, exclusive bool, value interface{}) *Validation

ExceedsMinimumInt error for when minimum validation fails

func ExceedsMinimumUint

func ExceedsMinimumUint(name, in string, minimum 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

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, minimum 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, maximum int64, value interface{}) *Validation

TooLong error for when a string is too long

func TooManyItems

func TooManyItems(name, in string, maximum 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, minimum 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

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

Source Files

api.go auth.go doc.go headers.go middleware.go parsing.go schema.go

Version
v0.22.1 (latest)
Published
Mar 17, 2025
Platform
js/wasm
Imports
6 packages
Last checked
4 days ago

Tools for package owners.