Documentation
¶
Index ¶
- func ValidateJSON(schemaJSON string, payloadJSON string) (bool, []string, error)
- type JSONSchema
- type JSONSchemaBuilder
- func (b *JSONSchemaBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) AddString(name string) *JSONSchemaPropertyBuilder
- func (b *JSONSchemaBuilder) Build() (*JSONSchema, error)
- func (b *JSONSchemaBuilder) BuildJSON() (string, error)
- func (b *JSONSchemaBuilder) Error() error
- func (b *JSONSchemaBuilder) Title(title string) *JSONSchemaBuilder
- func (b *JSONSchemaBuilder) UIOrder(order ...string) *JSONSchemaBuilder
- type JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) AddString(name string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Build() (*JSONSchema, error)
- func (pb *JSONSchemaPropertyBuilder) BuildJSON() (string, error)
- func (pb *JSONSchemaPropertyBuilder) Default(val interface{}) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Enum(options ...string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Error() error
- func (pb *JSONSchemaPropertyBuilder) Format(format string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Label(label string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) MaxLength(max int) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Maximum(max float64) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) MinLength(min int) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Minimum(min float64) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Pattern(regex string) *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Required() *JSONSchemaPropertyBuilder
- func (pb *JSONSchemaPropertyBuilder) Title(title string) *JSONSchemaBuilder
- func (pb *JSONSchemaPropertyBuilder) UIOrder(order ...string) *JSONSchemaBuilder
- func (pb *JSONSchemaPropertyBuilder) UIWidget(widget string) *JSONSchemaPropertyBuilder
- type UIWidgetSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type JSONSchema ¶
type JSONSchema struct {
Type string `json:"type"`
Title string `json:"title,omitempty"`
Properties map[string]*JSONSchema `json:"properties,omitempty"`
Required []string `json:"required,omitempty"`
Enum []string `json:"enum,omitempty"`
Default interface{} `json:"default,omitempty"`
MinLength *int `json:"minLength,omitempty"`
MaxLength *int `json:"maxLength,omitempty"`
Minimum *float64 `json:"minimum,omitempty"`
Maximum *float64 `json:"maximum,omitempty"`
Pattern string `json:"pattern,omitempty"`
Format string `json:"format,omitempty"`
UIOrder []string `json:"ui:order,omitempty"`
UIWidget string `json:"ui:widget,omitempty"`
}
type JSONSchemaBuilder ¶
type JSONSchemaBuilder struct {
// contains filtered or unexported fields
}
JSONSchemaBuilder builds JSONSchema structs fluently with sticky error tracking.
func NewBuilder ¶
func NewBuilder() *JSONSchemaBuilder
func (*JSONSchemaBuilder) AddBoolean ¶
func (b *JSONSchemaBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddInteger ¶
func (b *JSONSchemaBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddNumber ¶
func (b *JSONSchemaBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) AddString ¶
func (b *JSONSchemaBuilder) AddString(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaBuilder) Build ¶
func (b *JSONSchemaBuilder) Build() (*JSONSchema, error)
func (*JSONSchemaBuilder) BuildJSON ¶
func (b *JSONSchemaBuilder) BuildJSON() (string, error)
func (*JSONSchemaBuilder) Error ¶
func (b *JSONSchemaBuilder) Error() error
func (*JSONSchemaBuilder) Title ¶
func (b *JSONSchemaBuilder) Title(title string) *JSONSchemaBuilder
func (*JSONSchemaBuilder) UIOrder ¶
func (b *JSONSchemaBuilder) UIOrder(order ...string) *JSONSchemaBuilder
type JSONSchemaPropertyBuilder ¶
type JSONSchemaPropertyBuilder struct {
// contains filtered or unexported fields
}
JSONSchemaPropertyBuilder configures property validation constraints and settings.
func (*JSONSchemaPropertyBuilder) AddBoolean ¶
func (pb *JSONSchemaPropertyBuilder) AddBoolean(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddInteger ¶
func (pb *JSONSchemaPropertyBuilder) AddInteger(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddNumber ¶
func (pb *JSONSchemaPropertyBuilder) AddNumber(name string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) AddString ¶
func (pb *JSONSchemaPropertyBuilder) AddString(name string) *JSONSchemaPropertyBuilder
Chain methods back to the main builder to add more properties.
func (*JSONSchemaPropertyBuilder) Build ¶
func (pb *JSONSchemaPropertyBuilder) Build() (*JSONSchema, error)
func (*JSONSchemaPropertyBuilder) BuildJSON ¶
func (pb *JSONSchemaPropertyBuilder) BuildJSON() (string, error)
func (*JSONSchemaPropertyBuilder) Default ¶
func (pb *JSONSchemaPropertyBuilder) Default(val interface{}) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Enum ¶
func (pb *JSONSchemaPropertyBuilder) Enum(options ...string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Error ¶
func (pb *JSONSchemaPropertyBuilder) Error() error
func (*JSONSchemaPropertyBuilder) Format ¶
func (pb *JSONSchemaPropertyBuilder) Format(format string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Label ¶
func (pb *JSONSchemaPropertyBuilder) Label(label string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) MaxLength ¶
func (pb *JSONSchemaPropertyBuilder) MaxLength(max int) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Maximum ¶
func (pb *JSONSchemaPropertyBuilder) Maximum(max float64) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) MinLength ¶
func (pb *JSONSchemaPropertyBuilder) MinLength(min int) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Minimum ¶
func (pb *JSONSchemaPropertyBuilder) Minimum(min float64) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Pattern ¶
func (pb *JSONSchemaPropertyBuilder) Pattern(regex string) *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Required ¶
func (pb *JSONSchemaPropertyBuilder) Required() *JSONSchemaPropertyBuilder
func (*JSONSchemaPropertyBuilder) Title ¶
func (pb *JSONSchemaPropertyBuilder) Title(title string) *JSONSchemaBuilder
func (*JSONSchemaPropertyBuilder) UIOrder ¶
func (pb *JSONSchemaPropertyBuilder) UIOrder(order ...string) *JSONSchemaBuilder
func (*JSONSchemaPropertyBuilder) UIWidget ¶
func (pb *JSONSchemaPropertyBuilder) UIWidget(widget string) *JSONSchemaPropertyBuilder
type UIWidgetSpec ¶
type UIWidgetSpec struct {
Name string
Label string
Type string
Widget string
Required bool
Value interface{}
Options []string
MinLength *int
MaxLength *int
Minimum *float64
Maximum *float64
Pattern string
Format string
}
func ParseSchema ¶
func ParseSchema(schemaJSON string, variables map[string]interface{}) ([]*UIWidgetSpec, error)
ParseSchema parses a raw JSON Schema string and compiles it into an ordered list of UIWidgetSpecs. If variables map is provided, the current values are injected into the widget specs.
Click to show internal directories.
Click to hide internal directories.