Vendor extensions
By default codescan records where each spec object came from in Go via
x-go-name (and x-go-package on definitions) — useful for round-tripping and
code generation. Options.SkipExtensions removes them for a leaner spec.
// Widget is a small model.
//
// codescan records each field's Go origin as vendor extensions unless
// SkipExtensions is set.
//
// swagger:model
type Widget struct {
// Label is the display label.
Label string `json:"label"`
// Size is the widget size in pixels.
Size int32 `json:"size"`
}Full source: docs/examples/shaping/extensions/extensions.go
Default
{
"description": "codescan records each field's Go origin as vendor extensions unless\nSkipExtensions is set.",
"type": "object",
"title": "Widget is a small model.",
"properties": {
"label": {
"description": "Label is the display label.",
"type": "string",
"x-go-name": "Label"
},
"size": {
"description": "Size is the widget size in pixels.",
"type": "integer",
"format": "int32",
"x-go-name": "Size"
}
},
"x-go-package": "github.com/go-openapi/codescan/docs/examples/shaping/extensions"
}
Full source: docs/examples/shaping/extensions/testdata/off.json
SkipExtensions: true
{
"description": "codescan records each field's Go origin as vendor extensions unless\nSkipExtensions is set.",
"type": "object",
"title": "Widget is a small model.",
"properties": {
"label": {
"description": "Label is the display label.",
"type": "string"
},
"size": {
"description": "Size is the widget size in pixels.",
"type": "integer",
"format": "int32"
}
}
}
Full source: docs/examples/shaping/extensions/testdata/on.json
SkipExtensions removes the scanner-derived x-go-* extensions. Extensions you
author yourself (via the Extensions: keyword) are not affected.