Documentation
¶
Index ¶
Constants ¶
const ( // SpecVersionCurrent is the lastest spec SpecVersionCurrent SpecVersion = "http://json-schema.org/schema#" // SpecVersionCurrentHyper is the latest hyper spec SpecVersionCurrentHyper = "http://json-schema.org/hyper-schema#" // SpecVersionDraftV4 is the draft-04 spec SpecVersionDraftV4 = "http://json-schema.org/draft-04/schema#" // SpecVersionDraftV4 is the final 2020-12 spec SpecVersion202012 = "https://json-schema.org/draft/2020-12/schema" // SpecVersionDraftV4Hyper is the draft-04 hyper spec SpecVersionDraftV4Hyper = "http://json-schema.org/draft-04/hyper-schema#" )
const ( // SchemaTypeObject is the object type SchemaTypeObject string = "object" // SchemaTypeInteger is the integer type SchemaTypeInteger = "integer" // SchemaTypeNumber is the number type SchemaTypeNumber = "number" // SchemaTypeBoolean is the boolean type SchemaTypeBoolean = "boolean" // SchemaTypeString is the string type SchemaTypeString = "string" // SchemaTypeArray is the array type SchemaTypeArray = "array" )
const (
// DefinitionRoot is the root of the definition ref
DefinitionRoot = "#/definitions/"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArraySchema ¶
type ArraySchema interface {
JSONSchema
GetItems() JSONSchema
GetMaxItems() int64
GetMinItems() int64
GetAdditionalItems() bool
GetUniqueItems() bool
SetItems(items JSONSchema)
SetMaxItems(maxItems int64)
SetMinItems(minItems int64)
SetAdditionalItems(additionalItems bool)
SetUniqueItems(uniqueItems bool)
}
ArraySchema represents the schema for a JSON array.
type BoolOrSchema ¶
type BoolOrSchema struct {
Boolean bool
Schema JSONSchema
}
BoolOrSchema holds a bool or a JSONSchema for values that can take either. This is used for things like additionalProperties
func NewBoolOrSchema ¶
func NewBoolOrSchema(v interface{}) *BoolOrSchema
NewBoolOrSchema creates a *BoolOrSchema based on the given interface.
func (*BoolOrSchema) MarshalJSON ¶
func (b *BoolOrSchema) MarshalJSON() ([]byte, error)
MarshalJSON convert this object to JSON
func (*BoolOrSchema) UnmarshalJSON ¶
func (b *BoolOrSchema) UnmarshalJSON(data []byte) error
UnmarshalJSON converts this bool or schema object from a JSON structure
type Definitions ¶
type Definitions map[string]*JSONSchema
Definitions hold schema definitions. http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.26 RFC draft-wright-json-schema-validation-00, section 5.26
type JSONSchema ¶
type JSONSchema interface {
Clone() JSONSchema
GetSchemaURI() string
GetID() string
GetType() *StringOrArray
GetRef() string
GetTitle() string
GetDescription() string
GetAllOf() []JSONSchema
GetAnyOf() []JSONSchema
GetOneOf() []JSONSchema
GetNot() JSONSchema
GetDefinitions() map[string]JSONSchema
GetDefault() interface{}
AddDefinition(key string, def JSONSchema)
SetSchemaURI(uri string)
SetID(id string)
SetRef(ref string)
SetTitle(title string)
SetDescription(description string)
SetEnum(items []string)
SetIntEnum(items []string) error
SetAllOf(items []JSONSchema)
SetAnyOf(items []JSONSchema)
SetOneOf(items []JSONSchema)
SetNot(not JSONSchema)
SetDefault(def string) error
SetConstant(def interface{})
SetType(typeList string)
}
JSONSchema is the base interface that represents common json-schema attributes.
func FromJSON ¶
func FromJSON(js []byte) (JSONSchema, error)
FromJSON returns a JSONSchema object from the given json bytes.
func NewBasicSchema ¶
func NewBasicSchema(jsonType string) JSONSchema
NewBasicSchema creates a new BasicSchema
type NumericSchema ¶
type NumericSchema interface {
SimpleSchema
GetMultipleOf() float64
GetMaximum() float64
GetMinimum() float64
GetExclusiveMaximum() bool
GetExclusiveMinimum() bool
SetMultipleOf(multipleOf float64)
SetMaximum(maximum float64)
SetMinimum(minimum float64)
SetExclusiveMaximum(exclusiveMaximum bool)
SetExclusiveMinimum(exclusiveMinimum bool)
}
NumericSchema represents the schema for a JSON number.
func NewNumericSchema ¶
func NewNumericSchema(jsonType string) NumericSchema
NewNumericSchema creates a new numeric schema.
type ObjectSchema ¶
type ObjectSchema interface {
JSONSchema
GetProperties() map[string]JSONSchema
SetProperties(props map[string]JSONSchema)
GetRequired() []string
GetMaxProperties() int64
GetMinProperties() int64
GetAdditionalProperties() *BoolOrSchema
SetMaxProperties(maxProperties int64)
SetMinProperties(minProperties int64)
SetAdditionalProperties(additionalProperties *BoolOrSchema)
AddRequiredField(fieldName string)
SetGoPath(string)
GetGoPath() string
}
ObjectSchema represents a JSON object schema.
func NewMapSchema ¶
func NewMapSchema(suppressXAttrs bool) ObjectSchema
NewMapSchema creates a new object schema with additionalProperties set to true.
func NewObjectSchema ¶
func NewObjectSchema(suppressXAttrs bool) ObjectSchema
NewObjectSchema creates a new object schema
type SimpleSchema ¶
type SimpleSchema interface {
JSONSchema
SetFormat(format string)
GetFormat() string
}
SimpleSchema is the schema for simple JSON types such as a string, number or boolean.
func NewSimpleSchema ¶
func NewSimpleSchema(jsonType string) SimpleSchema
NewSimpleSchema creates a simple schema with the specified jsonType.
type SpecVersion ¶
type SpecVersion string
SpecVersion is the type for specifying which spec version you adhere to.
type StringOrArray ¶
StringOrArray holds a string or a slice of strings for values that can take either. This is used for things like type
func NewStringOrArray ¶
func NewStringOrArray(v interface{}) *StringOrArray
NewStringOrArray creates a *StringOrArray based on the given interface.
func (*StringOrArray) MarshalJSON ¶
func (soa *StringOrArray) MarshalJSON() ([]byte, error)
MarshalJSON convert this object to JSON
func (*StringOrArray) UnmarshalJSON ¶
func (soa *StringOrArray) UnmarshalJSON(data []byte) error
UnmarshalJSON converts this bool or schema object from a JSON structure
type StringSchema ¶
type StringSchema interface {
SimpleSchema
SetPattern(pattern string)
SetMaxLength(maxLength int64)
SetMinLength(minLength int64)
GetPattern() string
GetMaxLength() int64
GetMinLength() int64
}
StringSchema represents the schema for a JSON string.
func NewStringSchema ¶
func NewStringSchema() StringSchema
NewStringSchema creates a new string schema.