Documentation ¶
Index ¶
- Constants
- Variables
- func NewRawLoader(source interface{}) *jsonRawLoader
- 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 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 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 Schema
- type SchemaLoader
- type StringLengthGTEError
- type StringLengthLTEError
- 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)" )
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" )
const ( TYPE_ARRAY = `array` TYPE_BOOLEAN = `boolean` TYPE_INTEGER = `integer` TYPE_NUMBER = `number` TYPE_NULL = `null` TYPE_OBJECT = `object` TYPE_STRING = `string` )
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 ( // Formatters 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
var SCHEMA_TYPES []string
Functions ¶
func NewRawLoader ¶
func NewRawLoader(source interface{}) *jsonRawLoader
Types ¶
type AdditionalPropertyNotAllowedError ¶
type AdditionalPropertyNotAllowedError struct {
ResultErrorFields
}
AdditionalPropertyNotAllowedError. ErrorDetails: property
type ArrayContainsError ¶
type ArrayContainsError struct {
ResultErrorFields
}
ArrayContainsError. ErrorDetails:
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 ConditionElseError ¶
type ConditionElseError struct {
ResultErrorFields
}
ConditionElseError. ErrorDetails: -
type ConditionThenError ¶
type ConditionThenError struct {
ResultErrorFields
}
ConditionThenError. ErrorDetails: -
type DateFormatChecker ¶
type DateFormatChecker struct{}
func (DateFormatChecker) IsFormat ¶
func (f DateFormatChecker) IsFormat(input interface{}) bool
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
type DefaultJSONLoaderFactory ¶
type DefaultJSONLoaderFactory struct { }
func (DefaultJSONLoaderFactory) New ¶
func (d DefaultJSONLoaderFactory) New(source string) JSONLoader
type DefaultLocale ¶
type DefaultLocale struct{}
DefaultLocale is the default locale for this package
func (DefaultLocale) AdditionalPropertyNotAllowed ¶
func (l DefaultLocale) AdditionalPropertyNotAllowed() string
func (DefaultLocale) ArrayContains ¶
func (l DefaultLocale) ArrayContains() 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) ArrayNotEnoughItems ¶
func (l DefaultLocale) ArrayNotEnoughItems() string
func (DefaultLocale) CannotBeGT ¶
func (l DefaultLocale) CannotBeGT() string
func (DefaultLocale) CannotBeUsedWithout ¶
func (l DefaultLocale) CannotBeUsedWithout() string
func (DefaultLocale) ConditionElse ¶
func (l DefaultLocale) ConditionElse() string
func (DefaultLocale) Const ¶
func (l DefaultLocale) Const() 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) HttpBadStatus ¶
func (l DefaultLocale) HttpBadStatus() string
func (DefaultLocale) Internal ¶
func (l DefaultLocale) Internal() string
func (DefaultLocale) InvalidPropertyName ¶
func (l DefaultLocale) InvalidPropertyName() 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) 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 interface{}) bool
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
}
func (FileSystemJSONLoaderFactory) New ¶
func (f FileSystemJSONLoaderFactory) New(source string) JSONLoader
type FormatChecker ¶
type FormatChecker interface {
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
type IPV4FormatChecker ¶
type IPV4FormatChecker struct{}
IPV4FormatChecker verifies IP addresses in the ipv4 format
func (IPV4FormatChecker) IsFormat ¶
func (f IPV4FormatChecker) IsFormat(input interface{}) bool
type IPV6FormatChecker ¶
type IPV6FormatChecker struct{}
IPV6FormatChecker verifies IP addresses in the ipv6 format
func (IPV6FormatChecker) IsFormat ¶
func (f IPV6FormatChecker) IsFormat(input interface{}) bool
type InternalError ¶
type InternalError struct {
ResultErrorFields
}
InternalError. ErrorDetails: error
type InvalidPropertyNameError ¶
type InvalidPropertyNameError struct {
ResultErrorFields
}
InvalidPopertyNameError. ErrorDetails: property
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, i, j
type JSONLoader ¶
type JSONLoader interface { JsonSource() interface{} LoadJSON() (interface{}, error) JsonReference() (gojsonreference.JsonReference, error) LoaderFactory() JSONLoaderFactory }
func NewBytesLoader ¶
func NewBytesLoader(source []byte) JSONLoader
func NewGoLoader ¶
func NewGoLoader(source interface{}) JSONLoader
func NewReaderLoader ¶
func NewReaderLoader(source io.Reader) (JSONLoader, 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
func NewWriterLoader ¶
func NewWriterLoader(source io.Writer) (JSONLoader, io.Writer)
type JSONLoaderFactory ¶
type JSONLoaderFactory interface {
New(source string) JSONLoader
}
type JSONPointerFormatChecker ¶
type JSONPointerFormatChecker struct{}
JSONPointerFormatChecker validates a JSON Pointer per RFC6901
func (JSONPointerFormatChecker) IsFormat ¶
func (f JSONPointerFormatChecker) IsFormat(input interface{}) bool
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
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. 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 RegexFormatChecker ¶
type RegexFormatChecker struct{}
RegexFormatChecker validates a regex is in the correct format
func (RegexFormatChecker) IsFormat ¶
func (f RegexFormatChecker) IsFormat(input interface{}) bool
IsFormat implements FormatChecker interface.
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
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) AddError ¶
func (v *Result) AddError(err ResultError, details ErrorDetails)
Add 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() []ResultError
type ResultError ¶
type ResultError interface { Field() string SetType(string) Type() string SetContext(*JsonContext) Context() *JsonContext SetDescription(string) Description() string SetDescriptionFormat(string) DescriptionFormat() string SetValue(interface{}) Value() interface{} SetDetails(ErrorDetails) Details() ErrorDetails 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
func (*ResultErrorFields) Description ¶
func (v *ResultErrorFields) Description() string
func (*ResultErrorFields) DescriptionFormat ¶
func (v *ResultErrorFields) DescriptionFormat() 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) SetDescriptionFormat ¶
func (v *ResultErrorFields) SetDescriptionFormat(descriptionFormat 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 ¶
type SchemaLoader ¶
type SchemaLoader struct { AutoDetect bool Validate bool Draft Draft // contains filtered or unexported fields }
func NewSchemaLoader ¶
func NewSchemaLoader() *SchemaLoader
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)
type StringLengthGTEError ¶
type StringLengthGTEError struct {
ResultErrorFields
}
StringLengthGTEError. ErrorDetails: min
type StringLengthLTEError ¶
type StringLengthLTEError struct {
ResultErrorFields
}
StringLengthLTEError. ErrorDetails: max
type TimeFormatChecker ¶
type TimeFormatChecker struct{}
func (TimeFormatChecker) IsFormat ¶
func (f TimeFormatChecker) IsFormat(input interface{}) bool
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
type URIReferenceFormatChecker ¶
type URIReferenceFormatChecker struct{}
URIReferenceFormatChecker validates a URI or relative-reference per RFC3986
func (URIReferenceFormatChecker) IsFormat ¶
func (f URIReferenceFormatChecker) IsFormat(input interface{}) bool
type URITemplateFormatChecker ¶
type URITemplateFormatChecker struct{}
URITemplateFormatChecker validates a URI template per RFC6570
func (URITemplateFormatChecker) IsFormat ¶
func (f URITemplateFormatChecker) IsFormat(input interface{}) bool
type UUIDFormatChecker ¶
type UUIDFormatChecker struct{}
UUIDFormatChecker validates a UUID is in the correct format
func (UUIDFormatChecker) IsFormat ¶
func (f UUIDFormatChecker) IsFormat(input interface{}) bool