Basic json-schema generator based on Go types, for easy interchange of Go structures across languages.
The recommended way to install go-jsonschema-generator
go get github.com/mcuadros/go-jsonschema-generator
A basic example:
package main
import (
"fmt"
"github.com/mcuadros/go-jsonschema-generator"
)
type EmbeddedType struct {
Zoo string
}
type Item struct {
Value string
}
type ExampleBasic struct {
Foo bool `json:"foo"`
Bar string `json:",omitempty"`
Qux int8
Baz []string
EmbeddedType
List []Item
}
func main() {
s := &jsonschema.Document{}
s.Read(&ExampleBasic{})
fmt.Println(s)
}
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"Bar": {
"type": "string"
},
"Baz": {
"type": "array",
"items": {
"type": "string"
}
},
"List": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Value": {
"type": "string"
}
},
"required": [
"Value"
]
}
},
"Qux": {
"type": "integer"
},
"Zoo": {
"type": "string"
},
"foo": {
"type": "boolean"
}
},
"required": [
"foo",
"Qux",
"Baz",
"Zoo",
"List"
]
}
MIT, see LICENSE