-
-
Notifications
You must be signed in to change notification settings - Fork 449
/
Copy pathsimple_test.go
107 lines (98 loc) · 2.21 KB
/
simple_test.go
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
106
107
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": {
// "nullable": true,
// "type": "string"
// },
// "type": "object"
// },
// "ptr": {
// "nullable": true,
// "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"
// }
}