gojsonschema

package
v0.0.0-...-f1b76ca Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2019 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	STRING_NUMBER                     = "number"
	STRING_ARRAY_OF_STRINGS           = "array of strings"
	STRING_ARRAY_OF_SCHEMAS           = "array of schemas"
	STRING_SCHEMA                     = "schema"
	STRING_SCHEMA_OR_ARRAY_OF_STRINGS = "schema or array of strings"
	STRING_PROPERTIES                 = "properties"
	STRING_DEPENDENCY                 = "dependency"
	STRING_PROPERTY                   = "property"
	STRING_UNDEFINED                  = "undefined"
	STRING_CONTEXT_ROOT               = "(root)"
	STRING_ROOT_SCHEMA_PROPERTY       = "(root)"
)
View Source
const (
	KEY_SCHEMA                = "$subSchema"
	KEY_ID                    = "$id"
	KEY_REF                   = "$ref"
	KEY_TITLE                 = "title"
	KEY_DESCRIPTION           = "description"
	KEY_TYPE                  = "type"
	KEY_ITEMS                 = "items"
	KEY_ADDITIONAL_ITEMS      = "additionalItems"
	KEY_PROPERTIES            = "properties"
	KEY_PATTERN_PROPERTIES    = "patternProperties"
	KEY_ADDITIONAL_PROPERTIES = "additionalProperties"
	KEY_DEFINITIONS           = "definitions"
	KEY_MULTIPLE_OF           = "multipleOf"
	KEY_MINIMUM               = "minimum"
	KEY_MAXIMUM               = "maximum"
	KEY_EXCLUSIVE_MINIMUM     = "exclusiveMinimum"
	KEY_EXCLUSIVE_MAXIMUM     = "exclusiveMaximum"
	KEY_MIN_LENGTH            = "minLength"
	KEY_MAX_LENGTH            = "maxLength"
	KEY_PATTERN               = "pattern"
	KEY_FORMAT                = "format"
	KEY_MIN_PROPERTIES        = "minProperties"
	KEY_MAX_PROPERTIES        = "maxProperties"
	KEY_DEPENDENCIES          = "dependencies"
	KEY_REQUIRED              = "required"
	KEY_MIN_ITEMS             = "minItems"
	KEY_MAX_ITEMS             = "maxItems"
	KEY_UNIQUE_ITEMS          = "uniqueItems"
	KEY_ENUM                  = "enum"
	KEY_ONE_OF                = "oneOf"
	KEY_ANY_OF                = "anyOf"
	KEY_ALL_OF                = "allOf"
	KEY_NOT                   = "not"
)
View Source
const (
	TYPE_ARRAY   = `array`
	TYPE_BOOLEAN = `boolean`
	TYPE_INTEGER = `integer`
	TYPE_NUMBER  = `number`
	TYPE_NULL    = `null`
	TYPE_OBJECT  = `object`
	TYPE_STRING  = `string`
)

Variables

View Source
var (
	// Formatters holds the valid formatters, and is a public variable
	// so library users can add custom formatters
	FormatCheckers = FormatCheckerChain{
		// contains filtered or unexported fields
	}
)
View Source
var JSON_TYPES []string
View Source
var (
	// Locale is the default locale to use
	// Library users can overwrite with their own implementation
	Locale locale = DefaultLocale{}
)
View Source
var SCHEMA_TYPES []string

Functions

func NewGoLoader

func NewGoLoader(source interface{}) *jsonGoLoader

func NewReferenceLoader

func NewReferenceLoader(source string) *jsonReferenceLoader

NewReferenceLoader returns a JSON reference loader using the given source and the local OS file system.

func NewReferenceLoaderFileSystem

func NewReferenceLoaderFileSystem(source string, fs http.FileSystem) *jsonReferenceLoader

NewReferenceLoaderFileSystem returns a JSON reference loader using the given source and file system.

func NewStringLoader

func NewStringLoader(source string) *jsonStringLoader

Types

type AdditionalPropertyNotAllowedError

type AdditionalPropertyNotAllowedError struct {
	ResultErrorFields
}

AdditionalPropertyNotAllowedError. ErrorDetails: property

type ArrayMaxItemsError

type ArrayMaxItemsError struct {
	ResultErrorFields
}

ArrayMaxItemsError. ErrorDetails: max

type ArrayMaxPropertiesError

type ArrayMaxPropertiesError struct {
	ResultErrorFields
}

ArrayMaxPropertiesError. ErrorDetails: max

type ArrayMinItemsError

type ArrayMinItemsError struct {
	ResultErrorFields
}

ArrayMinItemsError. ErrorDetails: min

type ArrayMinPropertiesError

type ArrayMinPropertiesError struct {
	ResultErrorFields
}

ArrayMinPropertiesError. ErrorDetails: min

type ArrayNoAdditionalItemsError

type ArrayNoAdditionalItemsError struct {
	ResultErrorFields
}

ArrayNoAdditionalItemsError. ErrorDetails: -

type DateTimeFormatChecker

type DateTimeFormatChecker struct{}

DateTimeFormatChecker verifies date/time formats per RFC3339 5.6

Valid formats:

	Partial Time: HH:MM:SS
	Full Date: YYYY-MM-DD
	Full Time: HH:MM:SSZ-07:00
	Date Time: YYYY-MM-DDTHH:MM:SSZ-0700

Where
	YYYY = 4DIGIT year
	MM = 2DIGIT month ; 01-12
	DD = 2DIGIT day-month ; 01-28, 01-29, 01-30, 01-31 based on month/year
	HH = 2DIGIT hour ; 00-23
	MM = 2DIGIT ; 00-59
	SS = 2DIGIT ; 00-58, 00-60 based on leap second rules
	T = Literal
	Z = Literal

Note: Nanoseconds are also suported in all formats

http://tools.ietf.org/html/rfc3339#section-5.6

func (DateTimeFormatChecker) IsFormat

func (f DateTimeFormatChecker) IsFormat(input string) bool

type DefaultLocale

type DefaultLocale struct{}

DefaultLocale is the default locale for this package

func (DefaultLocale) AdditionalPropertyNotAllowed

func (l DefaultLocale) AdditionalPropertyNotAllowed() string

func (DefaultLocale) ArrayMaxItems

func (l DefaultLocale) ArrayMaxItems() string

func (DefaultLocale) ArrayMaxProperties

func (l DefaultLocale) ArrayMaxProperties() string

func (DefaultLocale) ArrayMinItems

func (l DefaultLocale) ArrayMinItems() string

func (DefaultLocale) ArrayMinProperties

func (l DefaultLocale) ArrayMinProperties() string

func (DefaultLocale) ArrayNoAdditionalItems

func (l DefaultLocale) ArrayNoAdditionalItems() string

func (DefaultLocale) CannotBeGT

func (l DefaultLocale) CannotBeGT() string

func (DefaultLocale) CannotBeUsedWithout

func (l DefaultLocale) CannotBeUsedWithout() string

func (DefaultLocale) DoesNotMatchFormat

func (l DefaultLocale) DoesNotMatchFormat() string

func (DefaultLocale) DoesNotMatchPattern

func (l DefaultLocale) DoesNotMatchPattern() string

func (DefaultLocale) Duplicated

func (l DefaultLocale) Duplicated() string

func (DefaultLocale) Enum

func (l DefaultLocale) Enum() string

func (DefaultLocale) ErrorFormat

func (l DefaultLocale) ErrorFormat() string

Replacement options: field, description, context, value

func (DefaultLocale) GreaterThanZero

func (l DefaultLocale) GreaterThanZero() string

func (DefaultLocale) Internal

func (l DefaultLocale) Internal() string

func (DefaultLocale) InvalidPropertyPattern

func (l DefaultLocale) InvalidPropertyPattern() string

func (DefaultLocale) InvalidType

func (l DefaultLocale) InvalidType() string

func (DefaultLocale) KeyCannotBeGreaterThan

func (l DefaultLocale) KeyCannotBeGreaterThan() string

func (DefaultLocale) KeyItemsMustBeOfType

func (l DefaultLocale) KeyItemsMustBeOfType() string

func (DefaultLocale) KeyItemsMustBeUnique

func (l DefaultLocale) KeyItemsMustBeUnique() string

func (DefaultLocale) MissingDependency

func (l DefaultLocale) MissingDependency() string

func (DefaultLocale) MultipleOf

func (l DefaultLocale) MultipleOf() string

func (DefaultLocale) MustBeGTEZero

func (l DefaultLocale) MustBeGTEZero() string

func (DefaultLocale) MustBeOfA

func (l DefaultLocale) MustBeOfA() string

func (DefaultLocale) MustBeOfAn

func (l DefaultLocale) MustBeOfAn() string

func (DefaultLocale) MustBeOfType

func (l DefaultLocale) MustBeOfType() string

func (DefaultLocale) MustBeValidFormat

func (l DefaultLocale) MustBeValidFormat() string

func (DefaultLocale) MustBeValidRegex

func (l DefaultLocale) MustBeValidRegex() string

func (DefaultLocale) NotAValidType

func (l DefaultLocale) NotAValidType() string

func (DefaultLocale) NumberAllOf

func (l DefaultLocale) NumberAllOf() string

func (DefaultLocale) NumberAnyOf

func (l DefaultLocale) NumberAnyOf() string

func (DefaultLocale) NumberGT

func (l DefaultLocale) NumberGT() string

func (DefaultLocale) NumberGTE

func (l DefaultLocale) NumberGTE() string

func (DefaultLocale) NumberLT

func (l DefaultLocale) NumberLT() string

func (DefaultLocale) NumberLTE

func (l DefaultLocale) NumberLTE() string

func (DefaultLocale) NumberNot

func (l DefaultLocale) NumberNot() string

func (DefaultLocale) NumberOneOf

func (l DefaultLocale) NumberOneOf() string

func (DefaultLocale) ReferenceMustBeCanonical

func (l DefaultLocale) ReferenceMustBeCanonical() string

func (DefaultLocale) RegexPattern

func (l DefaultLocale) RegexPattern() string

Schema validators

func (DefaultLocale) Required

func (l DefaultLocale) Required() string

func (DefaultLocale) StringGTE

func (l DefaultLocale) StringGTE() string

func (DefaultLocale) StringLTE

func (l DefaultLocale) StringLTE() string

func (DefaultLocale) Unique

func (l DefaultLocale) Unique() string

type DoesNotMatchFormatError

type DoesNotMatchFormatError struct {
	ResultErrorFields
}

DoesNotMatchFormatError. ErrorDetails: format

type DoesNotMatchPatternError

type DoesNotMatchPatternError struct {
	ResultErrorFields
}

DoesNotMatchPatternError. ErrorDetails: pattern

type EmailFormatChecker

type EmailFormatChecker struct{}

EmailFormatter verifies email address formats

func (EmailFormatChecker) IsFormat

func (f EmailFormatChecker) IsFormat(input string) bool

type EnumError

type EnumError struct {
	ResultErrorFields
}

EnumError. ErrorDetails: allowed

type ErrorDetails

type ErrorDetails map[string]interface{}

ErrorDetails is a map of details specific to each error. While the values will vary, every error will contain a "field" value

type FormatChecker

type FormatChecker interface {
	IsFormat(input string) bool
}

FormatChecker is the interface all formatters added to FormatCheckerChain must implement

type FormatCheckerChain

type FormatCheckerChain struct {
	// contains filtered or unexported fields
}

FormatCheckerChain holds the formatters

func (*FormatCheckerChain) Add

Add adds a FormatChecker to the FormatCheckerChain The name used will be the value used for the format key in your json schema

func (*FormatCheckerChain) Has

func (c *FormatCheckerChain) Has(name string) bool

Has checks to see if the FormatCheckerChain holds a FormatChecker with the given name

func (*FormatCheckerChain) IsFormat

func (c *FormatCheckerChain) IsFormat(name string, input interface{}) bool

IsFormat will check an input against a FormatChecker with the given name to see if it is the correct format

func (*FormatCheckerChain) Remove

func (c *FormatCheckerChain) Remove(name string) *FormatCheckerChain

Remove deletes a FormatChecker from the FormatCheckerChain (if it exists)

type HostnameFormatChecker

type HostnameFormatChecker struct{}

HostnameFormatChecker validates a hostname is in the correct format

func (HostnameFormatChecker) IsFormat

func (f HostnameFormatChecker) IsFormat(input string) bool

type IPV4FormatChecker

type IPV4FormatChecker struct{}

IPV4FormatChecker verifies IP addresses in the ipv4 format

func (IPV4FormatChecker) IsFormat

func (f IPV4FormatChecker) IsFormat(input string) bool

Credit: https://github.com/asaskevich/govalidator

type IPV6FormatChecker

type IPV6FormatChecker struct{}

IPV6FormatChecker verifies IP addresses in the ipv6 format

func (IPV6FormatChecker) IsFormat

func (f IPV6FormatChecker) IsFormat(input string) bool

Credit: https://github.com/asaskevich/govalidator

type InternalError

type InternalError struct {
	ResultErrorFields
}

InternalError. ErrorDetails: error

type InvalidPropertyPatternError

type InvalidPropertyPatternError struct {
	ResultErrorFields
}

InvalidPropertyPatternError. ErrorDetails: property, pattern

type InvalidTypeError

type InvalidTypeError struct {
	ResultErrorFields
}

InvalidTypeError. ErrorDetails: expected, given

type ItemsMustBeUniqueError

type ItemsMustBeUniqueError struct {
	ResultErrorFields
}

ItemsMustBeUniqueError. ErrorDetails: type

type JSONLoader

type JSONLoader interface {
	// contains filtered or unexported methods
}

type MissingDependencyError

type MissingDependencyError struct {
	ResultErrorFields
}

MissingDependencyError. ErrorDetails: dependency

type MultipleOfError

type MultipleOfError struct {
	ResultErrorFields
}

MultipleOfError. ErrorDetails: multiple

type NumberAllOfError

type NumberAllOfError struct {
	ResultErrorFields
}

NumberAllOfError. ErrorDetails: -

type NumberAnyOfError

type NumberAnyOfError struct {
	ResultErrorFields
}

NumberAnyOfError. ErrorDetails: -

type NumberGTEError

type NumberGTEError struct {
	ResultErrorFields
}

NumberGTEError. ErrorDetails: min

type NumberGTError

type NumberGTError struct {
	ResultErrorFields
}

NumberGTError. ErrorDetails: min

type NumberLTEError

type NumberLTEError struct {
	ResultErrorFields
}

NumberLTEError. ErrorDetails: max

type NumberLTError

type NumberLTError struct {
	ResultErrorFields
}

NumberLTError. ErrorDetails: max

type NumberNotError

type NumberNotError struct {
	ResultErrorFields
}

NumberNotError. ErrorDetails: -

type NumberOneOfError

type NumberOneOfError struct {
	ResultErrorFields
}

NumberOneOfError. ErrorDetails: -

type RequiredError

type RequiredError struct {
	ResultErrorFields
}

RequiredError. ErrorDetails: property string

type Result

type Result struct {
	// contains filtered or unexported fields
}

func Validate

func Validate(ls JSONLoader, ld JSONLoader) (*Result, error)

func (*Result) Errors

func (v *Result) Errors() []ResultError

func (*Result) Valid

func (v *Result) Valid() bool

type ResultError

type ResultError interface {
	Field() string
	SetType(string)
	Type() string
	SetContext(*jsonContext)
	Context() *jsonContext
	SetDescription(string)
	Description() string
	SetValue(interface{})
	Value() interface{}
	SetDetails(ErrorDetails)
	Details() ErrorDetails
}

ResultError is the interface that library errors must implement

type ResultErrorFields

type ResultErrorFields struct {
	// contains filtered or unexported fields
}

ResultErrorFields holds the fields for each ResultError implementation. ResultErrorFields implements the ResultError interface, so custom errors can be defined by just embedding this type

func (*ResultErrorFields) Context

func (v *ResultErrorFields) Context() *jsonContext

func (*ResultErrorFields) Description

func (v *ResultErrorFields) Description() string

func (*ResultErrorFields) Details

func (v *ResultErrorFields) Details() ErrorDetails

func (*ResultErrorFields) Field

func (v *ResultErrorFields) Field() string

Field outputs the field name without the root context i.e. firstName or person.firstName instead of (root).firstName or (root).person.firstName

func (*ResultErrorFields) SetContext

func (v *ResultErrorFields) SetContext(context *jsonContext)

func (*ResultErrorFields) SetDescription

func (v *ResultErrorFields) SetDescription(description string)

func (*ResultErrorFields) SetDetails

func (v *ResultErrorFields) SetDetails(details ErrorDetails)

func (*ResultErrorFields) SetType

func (v *ResultErrorFields) SetType(errorType string)

func (*ResultErrorFields) SetValue

func (v *ResultErrorFields) SetValue(value interface{})

func (ResultErrorFields) String

func (v ResultErrorFields) String() string

func (*ResultErrorFields) Type

func (v *ResultErrorFields) Type() string

func (*ResultErrorFields) Value

func (v *ResultErrorFields) Value() interface{}

type Schema

type Schema struct {
	// contains filtered or unexported fields
}

func NewSchema

func NewSchema(l JSONLoader) (*Schema, error)

func (*Schema) SetRootSchemaName

func (d *Schema) SetRootSchemaName(name string)

func (*Schema) Validate

func (v *Schema) Validate(l JSONLoader) (*Result, error)

type StringLengthGTEError

type StringLengthGTEError struct {
	ResultErrorFields
}

StringLengthGTEError. ErrorDetails: min

type StringLengthLTEError

type StringLengthLTEError struct {
	ResultErrorFields
}

StringLengthLTEError. ErrorDetails: max

type URIFormatChecker

type URIFormatChecker struct{}

URIFormatCheckers validates a URI with a valid Scheme per RFC3986

func (URIFormatChecker) IsFormat

func (f URIFormatChecker) IsFormat(input string) bool

type UUIDFormatChecker

type UUIDFormatChecker struct{}

UUIDFormatChecker validates a UUID is in the correct format

func (UUIDFormatChecker) IsFormat

func (f UUIDFormatChecker) IsFormat(input string) bool

Jump to

Keyboard shortcuts

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