 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Copyright Kozyrev Yury MIT license.
Index ¶
- Constants
- func Generate(root interface{}) string
- type Generator
- func (g *Generator) Generate() (*JSONSchema, error)
- func (g *Generator) MustGenerate() *JSONSchema
- func (g *Generator) WithDefinition(name string, d interface{}) *Generator
- func (g *Generator) WithDefinitions(d map[string]interface{}) *Generator
- func (g *Generator) WithRoot(r interface{}) *Generator
 
- type JSONSchema
- type Options
- type Property
Constants ¶
      View Source
      
  
const DEFAULT_SCHEMA = "http://json-schema.org/schema#"
    Variables ¶
This section is empty.
Functions ¶
Types ¶
type Generator ¶
type Generator struct {
	// contains filtered or unexported fields
}
    func NewGenerator ¶
func (*Generator) Generate ¶
func (g *Generator) Generate() (*JSONSchema, error)
Generate generates a schema for the provided interface.
func (*Generator) MustGenerate ¶
func (g *Generator) MustGenerate() *JSONSchema
func (*Generator) WithDefinition ¶
func (*Generator) WithDefinitions ¶
type JSONSchema ¶
type JSONSchema struct {
	Schema      string              `json:"$schema,omitempty"`
	Definitions map[string]Property `json:"definitions,omitempty"`
	Property
}
    func (JSONSchema) String ¶
func (d JSONSchema) String() string
String return the JSON encoding of the JSONSchema as a string
type Property ¶
type Property struct {
	Type                 string                 `json:"type,omitempty"`
	Format               string                 `json:"format,omitempty"`
	Items                *Property              `json:"items,omitempty"`
	Properties           map[string]*Property   `json:"properties,omitempty"`
	Required             []string               `json:"required,omitempty"`
	AdditionalProperties interface{}            `json:"additionalProperties,omitempty"`
	Description          string                 `json:"description,omitempty"`
	AnyOf                []*Property            `json:"anyOf,omitempty"`
	OneOf                []*Property            `json:"oneOf,omitempty"`
	Dependencies         map[string]*Property   `json:"dependencies,omitempty"`
	Default              interface{}            `json:"default,omitempty"`
	Extensions           map[string]interface{} `json:"-"`
	// numbers validators
	MultipleOf       *float64 `json:"multipleOf,omitempty"`
	Maximum          *float64 `json:"maximum,omitempty"`
	Minimum          *float64 `json:"minimum,omitempty"`
	ExclusiveMaximum *float64 `json:"exclusiveMaximum,omitempty"`
	ExclusiveMinimum *float64 `json:"exclusiveMinimum,omitempty"`
	// string validators
	MaxLength *int64 `json:"maxLength,omitempty"`
	MinLength *int64 `json:"minLength,omitempty"`
	Pattern   string `json:"pattern,omitempty"`
	// Enum is defined for arbitrary types, but I'm currently just implementing it for strings.
	Enum  []string `json:"enum,omitempty"`
	Title string   `json:"title,omitempty"`
	// Implemented for strings and numbers
	Const interface{} `json:"const,omitempty"`
	Ref   string      `json:"$ref,omitempty"`
	// contains filtered or unexported fields
}
    func (*Property) MarshalJSON ¶ added in v0.2.0
 Click to show internal directories. 
   Click to hide internal directories.