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
|
//go:build go1.16
// +build go1.16
package openapi3_test
import (
"embed"
"fmt"
"net/url"
"github.com/getkin/kin-openapi/openapi3"
)
//go:embed testdata/recursiveRef/*
var fs embed.FS
func Example() {
loader := openapi3.NewLoader()
loader.IsExternalRefsAllowed = true
loader.ReadFromURIFunc = func(loader *openapi3.Loader, uri *url.URL) ([]byte, error) {
return fs.ReadFile(uri.Path)
}
doc, err := loader.LoadFromFile("testdata/recursiveRef/openapi.yml")
if err != nil {
panic(err)
}
if err = doc.Validate(loader.Context); err != nil {
panic(err)
}
fmt.Println(doc.
Paths.Value("/foo").
Get.Responses.Value("200").Value.
Content["application/json"].
Schema.Value.
Properties["foo2"].Value.
Properties["foo"].Value.
Properties["bar"].Value.
Type,
)
// Output: &[string]
}
|