1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
package openapi3gen_test
import (
"encoding/json"
"fmt"
"time"
"github.com/getkin/kin-openapi/openapi3gen"
)
type (
SomeStruct struct {
Bool bool `json:"bool"`
Int int `json:"int"`
Int64 int64 `json:"int64"`
Float64 float64 `json:"float64"`
String string `json:"string"`
Bytes []byte `json:"bytes"`
JSON json.RawMessage `json:"json"`
Time time.Time `json:"time"`
Slice []SomeOtherType `json:"slice"`
Map map[string]*SomeOtherType `json:"map"`
Struct struct {
X string `json:"x"`
} `json:"struct"`
EmptyStruct struct {
Y string
} `json:"structWithoutFields"`
Ptr *SomeOtherType `json:"ptr"`
}
SomeOtherType string
)
func Example() {
schemaRef, err := openapi3gen.NewSchemaRefForValue(&SomeStruct{}, nil)
if err != nil {
panic(err)
}
data, err := json.MarshalIndent(schemaRef, "", " ")
if err != nil {
panic(err)
}
fmt.Printf("%s\n", data)
// Output:
// {
// "properties": {
// "bool": {
// "type": "boolean"
// },
// "bytes": {
// "format": "byte",
// "type": "string"
// },
// "float64": {
// "format": "double",
// "type": "number"
// },
// "int": {
// "type": "integer"
// },
// "int64": {
// "format": "int64",
// "type": "integer"
// },
// "json": {},
// "map": {
// "additionalProperties": {
// "type": "string"
// },
// "type": "object"
// },
// "ptr": {
// "type": "string"
// },
// "slice": {
// "items": {
// "type": "string"
// },
// "type": "array"
// },
// "string": {
// "type": "string"
// },
// "struct": {
// "properties": {
// "x": {
// "type": "string"
// }
// },
// "type": "object"
// },
// "structWithoutFields": {},
// "time": {
// "format": "date-time",
// "type": "string"
// }
// },
// "type": "object"
// }
}
|