Documentation ¶
Index ¶
- Constants
- Variables
- func FormatErrorDescription(s string, details ErrorDetails) string
- type AdditionalPropertyNotAllowedError
- type ArrayContainsError
- type ArrayMaxItemsError
- type ArrayMaxPropertiesError
- type ArrayMinItemsError
- type ArrayMinPropertiesError
- type ArrayNoAdditionalItemsError
- type ConditionElseError
- type ConditionThenError
- type ConstError
- type DateFormatChecker
- type DateTimeFormatChecker
- type DefaultJSONLoaderFactory
- type DefaultLocale
- func (l DefaultLocale) AdditionalPropertyNotAllowed() string
- func (l DefaultLocale) ArrayContains() string
- func (l DefaultLocale) ArrayMaxItems() string
- func (l DefaultLocale) ArrayMaxProperties() string
- func (l DefaultLocale) ArrayMinItems() string
- func (l DefaultLocale) ArrayMinProperties() string
- func (l DefaultLocale) ArrayNoAdditionalItems() string
- func (l DefaultLocale) ArrayNotEnoughItems() string
- func (l DefaultLocale) CannotBeGT() string
- func (l DefaultLocale) CannotBeUsedWithout() string
- func (l DefaultLocale) ConditionElse() string
- func (l DefaultLocale) ConditionThen() string
- func (l DefaultLocale) Const() string
- func (l DefaultLocale) DoesNotMatchFormat() string
- func (l DefaultLocale) DoesNotMatchPattern() string
- func (l DefaultLocale) Duplicated() string
- func (l DefaultLocale) Enum() string
- func (l DefaultLocale) ErrorFormat() string
- func (l DefaultLocale) GreaterThanZero() string
- func (l DefaultLocale) HttpBadStatus() string
- func (l DefaultLocale) Internal() string
- func (l DefaultLocale) InvalidPropertyName() string
- func (l DefaultLocale) InvalidPropertyPattern() string
- func (l DefaultLocale) InvalidType() string
- func (l DefaultLocale) KeyCannotBeGreaterThan() string
- func (l DefaultLocale) KeyItemsMustBeOfType() string
- func (l DefaultLocale) KeyItemsMustBeUnique() string
- func (l DefaultLocale) MissingDependency() string
- func (l DefaultLocale) MultipleOf() string
- func (l DefaultLocale) MustBeGTEZero() string
- func (l DefaultLocale) MustBeOfA() string
- func (l DefaultLocale) MustBeOfAn() string
- func (l DefaultLocale) MustBeOfType() string
- func (l DefaultLocale) MustBeValidFormat() string
- func (l DefaultLocale) MustBeValidRegex() string
- func (l DefaultLocale) NotAValidType() string
- func (l DefaultLocale) NumberAllOf() string
- func (l DefaultLocale) NumberAnyOf() string
- func (l DefaultLocale) NumberGT() string
- func (l DefaultLocale) NumberGTE() string
- func (l DefaultLocale) NumberLT() string
- func (l DefaultLocale) NumberLTE() string
- func (l DefaultLocale) NumberNot() string
- func (l DefaultLocale) NumberOneOf() string
- func (l DefaultLocale) ParseError() string
- func (l DefaultLocale) ReferenceMustBeCanonical() string
- func (l DefaultLocale) RegexPattern() string
- func (l DefaultLocale) Required() string
- func (l DefaultLocale) StringGTE() string
- func (l DefaultLocale) StringLTE() string
- func (l DefaultLocale) Unique() string
- type DoesNotMatchFormatError
- type DoesNotMatchPatternError
- type Draft
- type EmailFormatChecker
- type EnumError
- type ErrorDetails
- type FileSystemJSONLoaderFactory
- type FormatChecker
- type FormatCheckerChain
- type Hook
- type HostnameFormatChecker
- type IPV4FormatChecker
- type IPV6FormatChecker
- type InternalError
- type InvalidPropertyNameError
- type InvalidPropertyPatternError
- type InvalidTypeError
- type ItemsMustBeUniqueError
- type JSONLoader
- func NewBytesLoader(source []byte) JSONLoader
- func NewGoLoader(source interface{}) JSONLoader
- func NewRawLoader(source interface{}) JSONLoader
- func NewReaderLoader(source io.Reader) (JSONLoader, io.Reader)
- func NewReferenceLoader(source string) JSONLoader
- func NewReferenceLoaderFileSystem(source string, fs http.FileSystem) JSONLoader
- func NewStringLoader(source string) JSONLoader
- func NewWriterLoader(source io.Writer) (JSONLoader, io.Writer)
- type JSONLoaderFactory
- type JSONPointerFormatChecker
- type JsonContext
- type MissingDependencyError
- type MultipleOfError
- type NumberAllOfError
- type NumberAnyOfError
- type NumberGTEError
- type NumberGTError
- type NumberLTEError
- type NumberLTError
- type NumberNotError
- type NumberOneOfError
- type RegexFormatChecker
- type RelativeJSONPointerFormatChecker
- type RequiredError
- type Result
- type ResultError
- type ResultErrorFields
- func (v *ResultErrorFields) Context() *JsonContext
- func (v *ResultErrorFields) Description() string
- func (v *ResultErrorFields) DescriptionFormat() string
- func (v *ResultErrorFields) Details() ErrorDetails
- func (v *ResultErrorFields) Field() string
- func (v *ResultErrorFields) SetContext(context *JsonContext)
- func (v *ResultErrorFields) SetDescription(description string)
- func (v *ResultErrorFields) SetDescriptionFormat(descriptionFormat string)
- func (v *ResultErrorFields) SetDetails(details ErrorDetails)
- func (v *ResultErrorFields) SetType(errorType string)
- func (v *ResultErrorFields) SetValue(value interface{})
- func (v ResultErrorFields) String() string
- func (v *ResultErrorFields) Type() string
- func (v *ResultErrorFields) Value() interface{}
- type ResultErrors
- type Schema
- type SchemaLoader
- type StringLengthGTEError
- type StringLengthLTEError
- type SubSchema
- func (s *SubSchema) AddAllOf(subSchema *SubSchema)
- func (s *SubSchema) AddAnyOf(subSchema *SubSchema)
- func (s *SubSchema) AddConst(i interface{}) error
- func (s *SubSchema) AddEnum(i interface{}) error
- func (s *SubSchema) AddItemsChild(child *SubSchema)
- func (s *SubSchema) AddOneOf(subSchema *SubSchema)
- func (s *SubSchema) AddPropertiesChild(child *SubSchema)
- func (s *SubSchema) AddRequired(value string) error
- func (s *SubSchema) ContainsEnum(i interface{}) (bool, error)
- func (s *SubSchema) Node() interface{}
- func (s *SubSchema) PatternPropertiesString() string
- func (s *SubSchema) SetElse(subSchema *SubSchema)
- func (s *SubSchema) SetIf(subSchema *SubSchema)
- func (s *SubSchema) SetNot(subSchema *SubSchema)
- func (s *SubSchema) SetThen(subSchema *SubSchema)
- type TimeFormatChecker
- type URIFormatChecker
- type URIReferenceFormatChecker
- type URITemplateFormatChecker
- type UUIDFormatChecker
Constants ¶
const ( STRING_NUMBER = "number" STRING_ARRAY_OF_STRINGS = "array of strings" STRING_ARRAY_OF_SCHEMAS = "array of schemas" STRING_SCHEMA = "valid 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)" )
constants
const ( KEY_SCHEMA = "$schema" KEY_ID = "id" KEY_ID_NEW = "$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_PROPERTY_NAMES = "propertyNames" 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_CONTAINS = "contains" KEY_CONST = "const" KEY_ENUM = "enum" KEY_ONE_OF = "oneOf" KEY_ANY_OF = "anyOf" KEY_ALL_OF = "allOf" KEY_NOT = "not" KEY_IF = "if" KEY_THEN = "then" KEY_ELSE = "else" )
Constants
const ( TYPE_ARRAY = `array` TYPE_BOOLEAN = `boolean` TYPE_INTEGER = `integer` TYPE_NUMBER = `number` TYPE_NULL = `null` TYPE_OBJECT = `object` TYPE_STRING = `string` )
Type constants
Variables ¶
var ( // Locale is the default locale to use // Library users can overwrite with their own implementation Locale locale = DefaultLocale{} // ErrorTemplateFuncs allows you to define custom template funcs for use in localization. ErrorTemplateFuncs template.FuncMap )
var ( // FormatCheckers holds the valid formatters, and is a public variable // so library users can add custom formatters FormatCheckers = FormatCheckerChain{ // contains filtered or unexported fields } )
var JSON_TYPES []string
JSON_TYPES hosts the list of type that are supported in JSON
var SCHEMA_TYPES []string
SCHEMA_TYPES hosts the list of type that are supported in schemas
Functions ¶
func FormatErrorDescription ¶ added in v1.2.0
func FormatErrorDescription(s string, details ErrorDetails) string
FormatErrorDescription takes a string in the default text/template format and converts it to a string with replacements. The fields come from the ErrorDetails struct and vary for each type of error.
Types ¶
type AdditionalPropertyNotAllowedError ¶
type AdditionalPropertyNotAllowedError struct {
ResultErrorFields
}
AdditionalPropertyNotAllowedError is produced if an object has additional properties, but not allowed ErrorDetails: property
type ArrayContainsError ¶
type ArrayContainsError struct {
ResultErrorFields
}
ArrayContainsError is produced if an array contains invalid items ErrorDetails:
type ArrayMaxItemsError ¶
type ArrayMaxItemsError struct {
ResultErrorFields
}
ArrayMaxItemsError is produced if an array contains more items than the allowed maximum ErrorDetails: max
type ArrayMaxPropertiesError ¶
type ArrayMaxPropertiesError struct {
ResultErrorFields
}
ArrayMaxPropertiesError is produced if an object contains more properties than the allowed maximum ErrorDetails: max
type ArrayMinItemsError ¶
type ArrayMinItemsError struct {
ResultErrorFields
}
ArrayMinItemsError is produced if an array contains less items than the allowed minimum ErrorDetails: min
type ArrayMinPropertiesError ¶
type ArrayMinPropertiesError struct {
ResultErrorFields
}
ArrayMinPropertiesError is produced if an object contains less properties than the allowed minimum ErrorDetails: min
type ArrayNoAdditionalItemsError ¶
type ArrayNoAdditionalItemsError struct {
ResultErrorFields
}
ArrayNoAdditionalItemsError is produced if additional items were found, but not allowed ErrorDetails: -
type ConditionElseError ¶
type ConditionElseError struct {
ResultErrorFields
}
ConditionElseError is produced if a condition's "else" condition is invalid ErrorDetails: -
type ConditionThenError ¶
type ConditionThenError struct {
ResultErrorFields
}
ConditionThenError is produced if a condition's "then" validation is invalid ErrorDetails: -
type ConstError ¶
type ConstError struct {
ResultErrorFields
}
ConstError indicates a const error ErrorDetails: allowed
type DateFormatChecker ¶
type DateFormatChecker struct{}
DateFormatChecker verifies date formats
Valid format:
Full Date: YYYY-MM-DD 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
func (DateFormatChecker) IsFormat ¶
func (f DateFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted date (YYYY-MM-DD)
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 interface{}) bool
IsFormat checks if input is a correctly formatted date/time per RFC3339 5.6
type DefaultJSONLoaderFactory ¶
type DefaultJSONLoaderFactory struct { }
DefaultJSONLoaderFactory is the default JSON loader factory
func (DefaultJSONLoaderFactory) New ¶
func (d DefaultJSONLoaderFactory) New(source string) JSONLoader
New creates a new JSON loader for the given source
type DefaultLocale ¶
type DefaultLocale struct{}
DefaultLocale is the default locale for this package
func (DefaultLocale) AdditionalPropertyNotAllowed ¶
func (l DefaultLocale) AdditionalPropertyNotAllowed() string
AdditionalPropertyNotAllowed returns a format-string to format an AdditionalPropertyNotAllowedError
func (DefaultLocale) ArrayContains ¶
func (l DefaultLocale) ArrayContains() string
ArrayContains returns a format-string to format an ArrayContainsError
func (DefaultLocale) ArrayMaxItems ¶
func (l DefaultLocale) ArrayMaxItems() string
ArrayMaxItems returns a format-string to format an ArrayMaxItemsError
func (DefaultLocale) ArrayMaxProperties ¶
func (l DefaultLocale) ArrayMaxProperties() string
ArrayMaxProperties returns a format-string to format an ArrayMaxPropertiesError
func (DefaultLocale) ArrayMinItems ¶
func (l DefaultLocale) ArrayMinItems() string
ArrayMinItems returns a format-string to format an ArrayMinItemsError
func (DefaultLocale) ArrayMinProperties ¶
func (l DefaultLocale) ArrayMinProperties() string
ArrayMinProperties returns a format-string to format an ArrayMinPropertiesError
func (DefaultLocale) ArrayNoAdditionalItems ¶
func (l DefaultLocale) ArrayNoAdditionalItems() string
ArrayNoAdditionalItems returns a format-string to format an ArrayNoAdditionalItemsError
func (DefaultLocale) ArrayNotEnoughItems ¶
func (l DefaultLocale) ArrayNotEnoughItems() string
ArrayNotEnoughItems returns a format-string to format an error for arrays having not enough items to match positional list of schema
func (DefaultLocale) CannotBeGT ¶
func (l DefaultLocale) CannotBeGT() string
CannotBeGT returns a format-string to format an error where a value are greater than allowed
func (DefaultLocale) CannotBeUsedWithout ¶
func (l DefaultLocale) CannotBeUsedWithout() string
CannotBeUsedWithout returns a format-string to format a "cannot be used without" error
func (DefaultLocale) ConditionElse ¶
func (l DefaultLocale) ConditionElse() string
ConditionElse returns a format-string for ConditionElseError errors
func (DefaultLocale) ConditionThen ¶
func (l DefaultLocale) ConditionThen() string
ConditionThen returns a format-string for ConditionThenError errors If/Else
func (DefaultLocale) Const ¶
func (l DefaultLocale) Const() string
Const returns a format-string to format a ConstError
func (DefaultLocale) DoesNotMatchFormat ¶
func (l DefaultLocale) DoesNotMatchFormat() string
DoesNotMatchFormat returns a format-string to format an DoesNotMatchFormatError
func (DefaultLocale) DoesNotMatchPattern ¶
func (l DefaultLocale) DoesNotMatchPattern() string
DoesNotMatchPattern returns a format-string to format an DoesNotMatchPatternError
func (DefaultLocale) Duplicated ¶
func (l DefaultLocale) Duplicated() string
Duplicated returns a format-string to format an error where types are duplicated
func (DefaultLocale) Enum ¶
func (l DefaultLocale) Enum() string
Enum returns a format-string to format an EnumError
func (DefaultLocale) ErrorFormat ¶
func (l DefaultLocale) ErrorFormat() string
ErrorFormat returns a format string for errors Replacement options: field, description, context, value
func (DefaultLocale) GreaterThanZero ¶
func (l DefaultLocale) GreaterThanZero() string
GreaterThanZero returns a format-string to format an error where a number must be greater than zero
func (DefaultLocale) HttpBadStatus ¶
func (l DefaultLocale) HttpBadStatus() string
HttpBadStatus returns a format-string for errors when loading a schema using HTTP
func (DefaultLocale) Internal ¶
func (l DefaultLocale) Internal() string
Internal returns a format-string for internal errors
func (DefaultLocale) InvalidPropertyName ¶
func (l DefaultLocale) InvalidPropertyName() string
InvalidPropertyName returns a format-string to format an InvalidPropertyNameError
func (DefaultLocale) InvalidPropertyPattern ¶
func (l DefaultLocale) InvalidPropertyPattern() string
InvalidPropertyPattern returns a format-string to format an InvalidPropertyPatternError
func (DefaultLocale) InvalidType ¶
func (l DefaultLocale) InvalidType() string
InvalidType returns a format-string for "invalid type" schema validation errors
func (DefaultLocale) KeyCannotBeGreaterThan ¶
func (l DefaultLocale) KeyCannotBeGreaterThan() string
KeyCannotBeGreaterThan returns a format-string to format an error where a value is greater than the maximum allowed
func (DefaultLocale) KeyItemsMustBeOfType ¶
func (l DefaultLocale) KeyItemsMustBeOfType() string
KeyItemsMustBeOfType returns a format-string to format an error where a key is of the wrong type
func (DefaultLocale) KeyItemsMustBeUnique ¶
func (l DefaultLocale) KeyItemsMustBeUnique() string
KeyItemsMustBeUnique returns a format-string to format an error where keys are not unique
func (DefaultLocale) MissingDependency ¶
func (l DefaultLocale) MissingDependency() string
MissingDependency returns a format-string for "missing dependency" schema validation errors
func (DefaultLocale) MultipleOf ¶
func (l DefaultLocale) MultipleOf() string
MultipleOf returns a format-string to format an MultipleOfError
func (DefaultLocale) MustBeGTEZero ¶
func (l DefaultLocale) MustBeGTEZero() string
MustBeGTEZero returns a format-string to format an error where a value must be greater or equal than 0
func (DefaultLocale) MustBeOfA ¶
func (l DefaultLocale) MustBeOfA() string
MustBeOfA returns a format-string to format an error where a value is of the wrong type
func (DefaultLocale) MustBeOfAn ¶
func (l DefaultLocale) MustBeOfAn() string
MustBeOfAn returns a format-string to format an error where a value is of the wrong type
func (DefaultLocale) MustBeOfType ¶
func (l DefaultLocale) MustBeOfType() string
MustBeOfType returns a format-string to format an error where a value does not match the required type
func (DefaultLocale) MustBeValidFormat ¶
func (l DefaultLocale) MustBeValidFormat() string
MustBeValidFormat returns a format-string to format an error where a value does not match the expected format
func (DefaultLocale) MustBeValidRegex ¶
func (l DefaultLocale) MustBeValidRegex() string
MustBeValidRegex returns a format-string to format an error where a regex is invalid
func (DefaultLocale) NotAValidType ¶
func (l DefaultLocale) NotAValidType() string
NotAValidType returns a format-string to format an invalid type error
func (DefaultLocale) NumberAllOf ¶
func (l DefaultLocale) NumberAllOf() string
NumberAllOf returns a format-string for "allOf" schema validation errors
func (DefaultLocale) NumberAnyOf ¶
func (l DefaultLocale) NumberAnyOf() string
NumberAnyOf returns a format-string for "anyOf" schema validation errors
func (DefaultLocale) NumberGT ¶
func (l DefaultLocale) NumberGT() string
NumberGT returns the format string to format a NumberGTError
func (DefaultLocale) NumberGTE ¶
func (l DefaultLocale) NumberGTE() string
NumberGTE returns the format string to format a NumberGTEError
func (DefaultLocale) NumberLT ¶
func (l DefaultLocale) NumberLT() string
NumberLT returns the format string to format a NumberLTError
func (DefaultLocale) NumberLTE ¶
func (l DefaultLocale) NumberLTE() string
NumberLTE returns the format string to format a NumberLTEError
func (DefaultLocale) NumberNot ¶
func (l DefaultLocale) NumberNot() string
NumberNot returns a format-string to format a NumberNotError
func (DefaultLocale) NumberOneOf ¶
func (l DefaultLocale) NumberOneOf() string
NumberOneOf returns a format-string for "oneOf" schema validation errors
func (DefaultLocale) ParseError ¶
func (l DefaultLocale) ParseError() string
ParseError returns a format-string for JSON parsing errors
func (DefaultLocale) ReferenceMustBeCanonical ¶
func (l DefaultLocale) ReferenceMustBeCanonical() string
ReferenceMustBeCanonical returns a format-string to format a "reference must be canonical" error
func (DefaultLocale) RegexPattern ¶
func (l DefaultLocale) RegexPattern() string
RegexPattern returns a format-string to format a regex-pattern error
func (DefaultLocale) Required ¶
func (l DefaultLocale) Required() string
Required returns a format-string for "required" schema validation errors
func (DefaultLocale) StringGTE ¶
func (l DefaultLocale) StringGTE() string
StringGTE returns a format-string to format an StringLengthGTEError
func (DefaultLocale) StringLTE ¶
func (l DefaultLocale) StringLTE() string
StringLTE returns a format-string to format an StringLengthLTEError
func (DefaultLocale) Unique ¶
func (l DefaultLocale) Unique() string
Unique returns a format-string to format an ItemsMustBeUniqueError
type DoesNotMatchFormatError ¶
type DoesNotMatchFormatError struct {
ResultErrorFields
}
DoesNotMatchFormatError is produced if a string does not match the defined format ErrorDetails: format
type DoesNotMatchPatternError ¶
type DoesNotMatchPatternError struct {
ResultErrorFields
}
DoesNotMatchPatternError is produced if a string does not match the defined pattern ErrorDetails: pattern
type EmailFormatChecker ¶
type EmailFormatChecker struct{}
EmailFormatChecker verifies email address formats
func (EmailFormatChecker) IsFormat ¶
func (f EmailFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted e-mail address
type EnumError ¶
type EnumError struct {
ResultErrorFields
}
EnumError indicates an enum error 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 FileSystemJSONLoaderFactory ¶
type FileSystemJSONLoaderFactory struct {
// contains filtered or unexported fields
}
FileSystemJSONLoaderFactory is a JSON loader factory that uses http.FileSystem
func (FileSystemJSONLoaderFactory) New ¶
func (f FileSystemJSONLoaderFactory) New(source string) JSONLoader
New creates a new JSON loader for the given source
type FormatChecker ¶
type FormatChecker interface { // IsFormat checks if input has the correct format and type IsFormat(input interface{}) 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 ¶
func (c *FormatCheckerChain) Add(name string, f FormatChecker) *FormatCheckerChain
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 interface{}) bool
IsFormat checks if input is a correctly formatted hostname
type IPV4FormatChecker ¶
type IPV4FormatChecker struct{}
IPV4FormatChecker verifies IP addresses in the IPv4 format
func (IPV4FormatChecker) IsFormat ¶
func (f IPV4FormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted IPv4-address
type IPV6FormatChecker ¶
type IPV6FormatChecker struct{}
IPV6FormatChecker verifies IP addresses in the IPv6 format
func (IPV6FormatChecker) IsFormat ¶
func (f IPV6FormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted IPv6=address
type InternalError ¶
type InternalError struct {
ResultErrorFields
}
InternalError indicates an internal error ErrorDetails: error
type InvalidPropertyNameError ¶
type InvalidPropertyNameError struct {
ResultErrorFields
}
InvalidPropertyNameError is produced if an invalid-named property was found ErrorDetails: property
type InvalidPropertyPatternError ¶
type InvalidPropertyPatternError struct {
ResultErrorFields
}
InvalidPropertyPatternError is produced if an pattern was found ErrorDetails: property, pattern
type InvalidTypeError ¶
type InvalidTypeError struct {
ResultErrorFields
}
InvalidTypeError indicates that a field has the incorrect type ErrorDetails: expected, given
type ItemsMustBeUniqueError ¶
type ItemsMustBeUniqueError struct {
ResultErrorFields
}
ItemsMustBeUniqueError is produced if an array requires unique items, but contains non-unique items ErrorDetails: type, i, j
type JSONLoader ¶
type JSONLoader interface { JsonSource() interface{} LoadJSON() (interface{}, error) JsonReference() (gojsonreference.JsonReference, error) LoaderFactory() JSONLoaderFactory }
JSONLoader defines the JSON loader interface
func NewBytesLoader ¶
func NewBytesLoader(source []byte) JSONLoader
NewBytesLoader creates a new JSONLoader, taking a `[]byte` as source
func NewGoLoader ¶
func NewGoLoader(source interface{}) JSONLoader
NewGoLoader creates a new JSONLoader from a given Go struct
func NewRawLoader ¶
func NewRawLoader(source interface{}) JSONLoader
NewRawLoader creates a new JSON raw loader for the given source
func NewReaderLoader ¶
func NewReaderLoader(source io.Reader) (JSONLoader, io.Reader)
NewReaderLoader creates a new JSON loader using the provided io.Reader
func NewReferenceLoader ¶
func NewReferenceLoader(source string) JSONLoader
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) JSONLoader
NewReferenceLoaderFileSystem returns a JSON reference loader using the given source and file system.
func NewStringLoader ¶
func NewStringLoader(source string) JSONLoader
NewStringLoader creates a new JSONLoader, taking a string as source
func NewWriterLoader ¶
func NewWriterLoader(source io.Writer) (JSONLoader, io.Writer)
NewWriterLoader creates a new JSON loader using the provided io.Writer
type JSONLoaderFactory ¶
type JSONLoaderFactory interface { // New creates a new JSON loader for the given source New(source string) JSONLoader }
JSONLoaderFactory defines the JSON loader factory interface
type JSONPointerFormatChecker ¶
type JSONPointerFormatChecker struct{}
JSONPointerFormatChecker validates a JSON Pointer per RFC6901
func (JSONPointerFormatChecker) IsFormat ¶
func (f JSONPointerFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted JSON Pointer per RFC6901
type JsonContext ¶
type JsonContext struct {
// contains filtered or unexported fields
}
JsonContext implements a persistent linked-list of strings
func NewJsonContext ¶
func NewJsonContext(head string, tail *JsonContext) *JsonContext
NewJsonContext creates a new JsonContext
func (*JsonContext) Head ¶ added in v1.2.0
func (c *JsonContext) Head() string
func (*JsonContext) String ¶
func (c *JsonContext) String(del ...string) string
String displays the context in reverse. This plays well with the data structure's persistent nature with Cons and a json document's tree structure.
type MissingDependencyError ¶
type MissingDependencyError struct {
ResultErrorFields
}
MissingDependencyError is produced in case of a "missing dependency" problem ErrorDetails: dependency
type MultipleOfError ¶
type MultipleOfError struct {
ResultErrorFields
}
MultipleOfError is produced if a number is not a multiple of the defined multipleOf ErrorDetails: multiple
type NumberAllOfError ¶
type NumberAllOfError struct {
ResultErrorFields
}
NumberAllOfError is produced in case of a failing "allOf" validation ErrorDetails: -
type NumberAnyOfError ¶
type NumberAnyOfError struct {
ResultErrorFields
}
NumberAnyOfError is produced in case of a failing "anyOf" validation ErrorDetails: -
type NumberGTEError ¶
type NumberGTEError struct {
ResultErrorFields
}
NumberGTEError is produced if a number is lower than the allowed minimum ErrorDetails: min
type NumberGTError ¶
type NumberGTError struct {
ResultErrorFields
}
NumberGTError is produced if a number is lower than, or equal to the specified minimum, and exclusiveMinimum is set ErrorDetails: min
type NumberLTEError ¶
type NumberLTEError struct {
ResultErrorFields
}
NumberLTEError is produced if a number is higher than the allowed maximum ErrorDetails: max
type NumberLTError ¶
type NumberLTError struct {
ResultErrorFields
}
NumberLTError is produced if a number is higher than, or equal to the specified maximum, and exclusiveMaximum is set ErrorDetails: max
type NumberNotError ¶
type NumberNotError struct {
ResultErrorFields
}
NumberNotError is produced if a "not" validation failed ErrorDetails: -
type NumberOneOfError ¶
type NumberOneOfError struct {
ResultErrorFields
}
NumberOneOfError is produced in case of a failing "oneOf" validation ErrorDetails: -
type RegexFormatChecker ¶
type RegexFormatChecker struct{}
RegexFormatChecker validates a regex is in the correct format
func (RegexFormatChecker) IsFormat ¶
func (f RegexFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted regular expression
type RelativeJSONPointerFormatChecker ¶
type RelativeJSONPointerFormatChecker struct{}
RelativeJSONPointerFormatChecker validates a relative JSON Pointer is in the correct format
func (RelativeJSONPointerFormatChecker) IsFormat ¶
func (f RelativeJSONPointerFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted relative JSON Pointer
type RequiredError ¶
type RequiredError struct {
ResultErrorFields
}
RequiredError indicates that a required field is missing ErrorDetails: property string
type Result ¶
type Result struct {
// contains filtered or unexported fields
}
Result holds the result of a validation
func Validate ¶
func Validate(ls JSONLoader, ld JSONLoader) (*Result, error)
Validate loads and validates a JSON schema
func (*Result) AddError ¶
func (v *Result) AddError(err ResultError, details ErrorDetails)
AddError appends a fully filled error to the error set SetDescription() will be called with the result of the parsed err.DescriptionFormat()
func (*Result) Errors ¶
func (v *Result) Errors() ResultErrors
Errors returns the errors that were found
type ResultError ¶
type ResultError interface { // Field returns the field name without the root context // i.e. firstName or person.firstName instead of (root).firstName or (root).person.firstName Field() string // SetType sets the error-type SetType(string) // Type returns the error-type Type() string // SetContext sets the JSON-context for the error SetContext(*JsonContext) // Context returns the JSON-context of the error Context() *JsonContext // SetDescription sets a description for the error SetDescription(string) // Description returns the description of the error Description() string // SetDescriptionFormat sets the format for the description in the default text/template format SetDescriptionFormat(string) // DescriptionFormat returns the format for the description in the default text/template format DescriptionFormat() string // SetValue sets the value related to the error SetValue(interface{}) // Value returns the value related to the error Value() interface{} // SetDetails sets the details specific to the error SetDetails(ErrorDetails) // Details returns details about the error Details() ErrorDetails // String returns a string representation of the error String() string }
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
Context returns the JSON-context of the error
func (*ResultErrorFields) Description ¶
func (v *ResultErrorFields) Description() string
Description returns the description of the error
func (*ResultErrorFields) DescriptionFormat ¶
func (v *ResultErrorFields) DescriptionFormat() string
DescriptionFormat returns the format for the description in the default text/template format
func (*ResultErrorFields) Details ¶
func (v *ResultErrorFields) Details() ErrorDetails
Details returns details about the error
func (*ResultErrorFields) Field ¶
func (v *ResultErrorFields) Field() string
Field returns 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)
SetContext sets the JSON-context for the error
func (*ResultErrorFields) SetDescription ¶
func (v *ResultErrorFields) SetDescription(description string)
SetDescription sets a description for the error
func (*ResultErrorFields) SetDescriptionFormat ¶
func (v *ResultErrorFields) SetDescriptionFormat(descriptionFormat string)
SetDescriptionFormat sets the format for the description in the default text/template format
func (*ResultErrorFields) SetDetails ¶
func (v *ResultErrorFields) SetDetails(details ErrorDetails)
SetDetails sets the details specific to the error
func (*ResultErrorFields) SetType ¶
func (v *ResultErrorFields) SetType(errorType string)
SetType sets the error-type
func (*ResultErrorFields) SetValue ¶
func (v *ResultErrorFields) SetValue(value interface{})
SetValue sets the value related to the error
func (ResultErrorFields) String ¶
func (v ResultErrorFields) String() string
String returns a string representation of the error
func (*ResultErrorFields) Type ¶
func (v *ResultErrorFields) Type() string
Type returns the error-type
func (*ResultErrorFields) Value ¶
func (v *ResultErrorFields) Value() interface{}
Value returns the value related to the error
type ResultErrors ¶ added in v1.2.0
type ResultErrors []ResultError
func (ResultErrors) Error ¶ added in v1.2.0
func (e ResultErrors) Error() string
type Schema ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema holds a schema
func NewSchema ¶
func NewSchema(l JSONLoader) (*Schema, error)
NewSchema instances a schema using the given JSONLoader
func (*Schema) SetRootSchemaName ¶
SetRootSchemaName sets the root-schema name
type SchemaLoader ¶
type SchemaLoader struct { AutoDetect bool Validate bool Draft Draft // contains filtered or unexported fields }
SchemaLoader is used to load schemas
func NewSchemaLoader ¶
func NewSchemaLoader() *SchemaLoader
NewSchemaLoader creates a new NewSchemaLoader
func (*SchemaLoader) AddSchema ¶
func (sl *SchemaLoader) AddSchema(url string, loader JSONLoader) error
AddSchema adds a schema under the provided URL to the schema cache
func (*SchemaLoader) AddSchemas ¶
func (sl *SchemaLoader) AddSchemas(loaders ...JSONLoader) error
AddSchemas adds an arbritrary amount of schemas to the schema cache. As this function does not require an explicit URL, every schema should contain an $id, so that it can be referenced by the main schema
func (*SchemaLoader) Compile ¶
func (sl *SchemaLoader) Compile(rootSchema JSONLoader) (*Schema, error)
Compile loads and compiles a schema
type StringLengthGTEError ¶
type StringLengthGTEError struct {
ResultErrorFields
}
StringLengthGTEError is produced if a string is shorter than the minimum required length ErrorDetails: min
type StringLengthLTEError ¶
type StringLengthLTEError struct {
ResultErrorFields
}
StringLengthLTEError is produced if a string is longer than the maximum allowed length ErrorDetails: max
type SubSchema ¶ added in v1.2.0
type SubSchema struct {
// contains filtered or unexported fields
}
func (*SubSchema) AddItemsChild ¶ added in v1.2.0
func (*SubSchema) AddPropertiesChild ¶ added in v1.2.0
func (*SubSchema) AddRequired ¶ added in v1.2.0
func (*SubSchema) ContainsEnum ¶ added in v1.2.0
func (*SubSchema) PatternPropertiesString ¶ added in v1.2.0
type TimeFormatChecker ¶
type TimeFormatChecker struct{}
TimeFormatChecker verifies time formats
Valid formats:
Partial Time: HH:MM:SS Full Time: HH:MM:SSZ-07:00 Where HH = 2DIGIT hour ; 00-23 MM = 2DIGIT ; 00-59 SS = 2DIGIT ; 00-58, 00-60 based on leap second rules T = Literal Z = Literal
func (TimeFormatChecker) IsFormat ¶
func (f TimeFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input correctly formatted time (HH:MM:SS or HH:MM:SSZ-07:00)
type URIFormatChecker ¶
type URIFormatChecker struct{}
URIFormatChecker validates a URI with a valid Scheme per RFC3986
func (URIFormatChecker) IsFormat ¶
func (f URIFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is correctly formatted URI with a valid Scheme per RFC3986
type URIReferenceFormatChecker ¶
type URIReferenceFormatChecker struct{}
URIReferenceFormatChecker validates a URI or relative-reference per RFC3986
func (URIReferenceFormatChecker) IsFormat ¶
func (f URIReferenceFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted URI or relative-reference per RFC3986
type URITemplateFormatChecker ¶
type URITemplateFormatChecker struct{}
URITemplateFormatChecker validates a URI template per RFC6570
func (URITemplateFormatChecker) IsFormat ¶
func (f URITemplateFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted URI template per RFC6570
type UUIDFormatChecker ¶
type UUIDFormatChecker struct{}
UUIDFormatChecker validates a UUID is in the correct format
func (UUIDFormatChecker) IsFormat ¶
func (f UUIDFormatChecker) IsFormat(input interface{}) bool
IsFormat checks if input is a correctly formatted UUID