• Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

json-schemas generator based on Go types

go-jsonschema-generator Build Status GoDoc

Basic json-schema generator based on Go types, for easy interchange of Go structures across languages.

Installation

The recommended way to install go-jsonschema-generator

go get github.com/mcuadros/go-jsonschema-generator

Examples

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"
    ]
}

License

MIT, see LICENSE

More Repositories

1

ofelia

A docker job scheduler (aka. crontab for docker)
Go
3,002
star
2

go-syslog

Syslog server library for go.
Go
513
star
3

go-candyjs

fully transparent bridge between Go and the JavaScript
Go
455
star
4

dockership

dead simple docker deploy tool
Go
302
star
5

go-defaults

Go structures with default values using tags
Go
274
star
6

OctoPrint-TFT

A OctoPrint touch interface for TFT touch modules based on GTK+3
Go
171
star
7

go-version

Version normalizer and comparison library for go
Go
136
star
8

ascode

AsCode - Terraform Alternative Syntax
Go
111
star
9

homebrew-hhvm

HHVM repository for Homebrew
Ruby
103
star
10

go-rpi-rgb-led-matrix

Go binding for rpi-rgb-led-matrix an excellent C++ library to control RGB LED displays with Raspberry Pi GPIO.
Go
83
star
11

pynats

[Abandoned] A Python client for the NATS messaging system.
Python
75
star
12

gce-docker

Google Cloud Engine integration for Docker
Go
59
star
13

go-rpi-ws281x

Go bindings for Raspberry Pi PWM library for WS281X LEDs
Go
41
star
14

go-lookup

Small library on top of reflect for make lookups to any Structs or Maps
Go
36
star
15

go-monitor

a simple and extensible way to build monitorizable go process via HTTP.
Go
32
star
16

rocketizer

[Abandoned] Painless Dockerfile transformation to Rocket containers
Go
28
star
17

go-stable

Golang fixed versions tool for your private and public dependencies
Go
23
star
18

passage

SSH tunnels on steroids
Go
22
star
19

go-crxmake

CRX Package generator
Go
19
star
20

currency-detector

Class to detect the currency from any string
PHP
19
star
21

go-rat

tar extension for random access
Go
19
star
22

php-cayley

PHP wrapper of the Google's Cayley graph database REST interface
PHP
18
star
23

go-octoprint

Go library for accessing the OctoPrint's REST API
Go
17
star
24

go-composer

Basic replacement of Composer, the Dependency Manager for PHP
Go
16
star
25

harvester

Harvesterd is a low footprint collector and parser for events and logs
Go
12
star
26

fabric-composer

Deploy system for PHP composer based projects made with Fabric
Python
11
star
27

silex-hateoas

A RESTful example based on Hateoas and Silex
PHP
8
star
28

lemondb

Extensible MongoDB proxy
Go
8
star
29

go-git-aerospike

Example of go-git backed by a Aerospike
Go
7
star
30

go-raa

fast random access filesystem archive
Go
5
star
31

pimple-hack

A Pimple version in Hack/HHVM, just for fun!
PHP
4
star
32

python-solid-example

Simple example implementing SOLID principles with Python
Python
4
star
33

go-etcd-hydrator

Go
4
star
34

bson-hni

C++
3
star
35

pgwire

Go
3
star
36

ansi-slides

Slide with ANSI style!
PHP
3
star
37

go-time-aggregator

Go
3
star
38

bson-php-cpp

Libbson + PHP-CPP
C++
2
star
39

go-personal

A tiny library to score strings as fullnames or emails.
Go
2
star
40

go-mgo-cache

MongoDB interface for a Go cache
Go
2
star
41

dotfiles

Coming back to Linux! My new config files.
C
2
star
42

golang-arm

Docker Image packaging for golang for ARM platforms.
Shell
2
star
43

dockership-site

Dockership documentation
HTML
1
star
44

natstress

A stress tool for NATS Servers
Go
1
star
45

yCrawler

PHP
1
star
46

cli-array-editor

This class provides an easy way to edit arrays in CLI using vim or your preferred editor.
PHP
1
star
47

statsd-ducksboard-backend

A StatsD backend that sends metrics to Ducksboard
JavaScript
1
star
48

docker-arm

Dockerfiles for ARM
Shell
1
star
49

presentations

Repository of presentations
1
star
50

go-bson-schema

Go
1
star