Documentation ¶
Index ¶
- Constants
- Variables
- func AddXOrderOnDefaultExample(yamlDoc interface{}) interface{}
- func AddXOrderOnProperty(yamlDoc interface{}) interface{}
- func DefaultFuncMap(lang *LanguageOpts) template.FuncMap
- func DefaultSectionOpts(gen *GenOpts)
- func Generate(opts *GenOpts) error
- func RecoverMapValueOrder(oldValue interface{}) interface{}
- func ToKCLValueString(value interface{}) (string, error)
- func WithXOrder(specPath string, addXOrderFunc func(yamlDoc interface{}) interface{}) string
- type GenApp
- type GenCommon
- type GenDefinition
- type GenDefinitions
- type GenOpts
- type GenSchema
- type GenSchemaList
- type GenSecurityRequirement
- type GenSecurityRequirements
- type GenSecurityScheme
- type GenSecuritySchemes
- type GenSerGroup
- type GenSerGroups
- type GenSerializer
- type GenSerializers
- type LanguageOpts
- func (l *LanguageOpts) FormatContent(name string, content []byte) ([]byte, error)
- func (l *LanguageOpts) Init()
- func (l *LanguageOpts) MangleFileName(name string) string
- func (l *LanguageOpts) MangleModelName(modelName string) string
- func (l *LanguageOpts) MangleName(name, suffix string) string
- func (l *LanguageOpts) ManglePackageName(name, suffix string) string
- func (l *LanguageOpts) ManglePackagePath(name string, suffix string) string
- func (l *LanguageOpts) MangleVarName(name string) string
- func (l *LanguageOpts) NonEmptyValue(data interface{}) bool
- func (l *LanguageOpts) ToKclValue(data interface{}) string
- type Repository
- type SectionOpts
- type TemplateOpts
Constants ¶
const (
RegexPkgPath = "regex"
)
Variables ¶
var ( // Debug when the env var DEBUG or SWAGGER_DEBUG is not empty // the generators will be very noisy about what they are doing Debug = os.Getenv("DEBUG") != "" || os.Getenv("SWAGGER_DEBUG") != "" )
var ( // DefaultLanguageFunc defines the default generation language DefaultLanguageFunc func() *LanguageOpts )
var ( // FuncMapFunc yields a map with all functions for templates FuncMapFunc func(*LanguageOpts) template.FuncMap )
Functions ¶
func AddXOrderOnDefaultExample ¶
func AddXOrderOnDefaultExample(yamlDoc interface{}) interface{}
AddXOrderOnDefaultExample amends the spec to specify the map value order in "default" & "example" fields as they appear in the spec (supports yaml documents only).
func AddXOrderOnProperty ¶
func AddXOrderOnProperty(yamlDoc interface{}) interface{}
AddXOrderOnProperty amends the spec to specify property order as they appear in the spec (supports yaml documents only).
func DefaultFuncMap ¶
func DefaultFuncMap(lang *LanguageOpts) template.FuncMap
DefaultFuncMap yields a map with default functions for use n the templates. These are available in every template
func DefaultSectionOpts ¶
func DefaultSectionOpts(gen *GenOpts)
DefaultSectionOpts for a given opts, this is used when no config file is passed and uses the embedded templates when no local override can be found
func RecoverMapValueOrder ¶
func RecoverMapValueOrder(oldValue interface{}) interface{}
func ToKCLValueString ¶ added in v0.6.0
func WithXOrder ¶
WithXOrder amends the spec to specify the order of some fields (such as property, default, example, ...). supports yaml documents only.
Types ¶
type GenApp ¶
type GenApp struct { GenCommon Package string BasePath string Info *spec.Info ExternalDocs *spec.ExternalDocumentation Models []GenDefinition GenOpts *GenOpts }
GenApp represents all the meta data needed to generate an application from a swagger spec
func (*GenApp) UseGoStructFlags ¶
UseGoStructFlags returns true when no strategy is specified or it is set to "go-flags"
func (*GenApp) UseIntermediateMode ¶
UseIntermediateMode for https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29
func (*GenApp) UseModernMode ¶
UseModernMode for https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
type GenCommon ¶
GenCommon contains common properties needed across definitions, app and operations TargetImportPath may be used by templates to import other (possibly generated) packages in the generation path (e.g. relative to GOPATH). TargetImportPath is NOT used by standard templates.
type GenDefinition ¶
type GenDefinition struct { GenCommon GenSchema Package string Imports []importStmt ExtraSchemas GenSchemaList DependsOn []string External bool HasPatternValidation bool }
GenDefinition contains all the properties to generate a definition from a swagger spec
type GenDefinitions ¶
type GenDefinitions []GenDefinition
GenDefinitions represents a list of operations to generate this implements a sort by operation id
func (GenDefinitions) Len ¶
func (g GenDefinitions) Len() int
func (GenDefinitions) Less ¶
func (g GenDefinitions) Less(i, j int) bool
func (GenDefinitions) Swap ¶
func (g GenDefinitions) Swap(i, j int)
type GenOpts ¶
type GenOpts struct { ValidateSpec bool FlattenOpts *analysis.FlattenOpts KeepOrder bool Spec string ModelPackage string Target string Sections SectionOpts LanguageOpts *LanguageOpts FlagStrategy string CompatibilityMode string Copyright string }
GenOpts the options for the generator
func (*GenOpts) EnsureDefaults ¶
EnsureDefaults for these gen opts
type GenSchema ¶
type GenSchema struct { Example interface{} OriginalName string Name string EscapedName string Suffix string Path string ValueExpression string IndexVar string KeyVar string Title string Description string ReceiverName string Items *GenSchema AllowsAdditionalItems bool HasAdditionalItems bool AdditionalItems *GenSchema Object *GenSchema XMLName string CustomTag string Properties GenSchemaList AllOf GenSchemaList HasAdditionalProperties bool IsAdditionalProperties bool AdditionalProperties *GenSchema StrictAdditionalProperties bool ReadOnly bool IsBaseType bool HasBaseType bool IsSubType bool IsExported bool DiscriminatorField string DiscriminatorValue string Discriminates map[string]string Parents []string Default interface{} ExternalDocs *spec.ExternalDocumentation // contains filtered or unexported fields }
GenSchema contains all the information needed to generate the code for a schema
type GenSchemaList ¶
type GenSchemaList []GenSchema
GenSchemaList is a list of schemas for generation.
It can be sorted by name to get a stable struct layout for version control and such
func (GenSchemaList) Len ¶
func (g GenSchemaList) Len() int
func (GenSchemaList) Less ¶
func (g GenSchemaList) Less(i, j int) bool
func (GenSchemaList) Swap ¶
func (g GenSchemaList) Swap(i, j int)
type GenSecurityRequirement ¶
GenSecurityRequirement represents a security requirement for an operation
type GenSecurityRequirements ¶
type GenSecurityRequirements []GenSecurityRequirement
GenSecurityRequirements represents a compounded security requirement specification. In a []GenSecurityRequirements complete requirements specification, outer elements are interpreted as optional requirements (OR), and inner elements are interpreted as jointly required (AND).
func (GenSecurityRequirements) Len ¶
func (g GenSecurityRequirements) Len() int
func (GenSecurityRequirements) Less ¶
func (g GenSecurityRequirements) Less(i, j int) bool
func (GenSecurityRequirements) Swap ¶
func (g GenSecurityRequirements) Swap(i, j int)
type GenSecurityScheme ¶
type GenSecurityScheme struct { AppName string ID string Name string ReceiverName string IsBasicAuth bool IsAPIKeyAuth bool IsOAuth2 bool Scopes []string Source string // from spec.SecurityScheme Description string Type string In string Flow string AuthorizationURL string TokenURL string Extensions map[string]interface{} }
GenSecurityScheme represents a security scheme for code generation
type GenSecuritySchemes ¶
type GenSecuritySchemes []GenSecurityScheme
GenSecuritySchemes sorted representation of serializers
func (GenSecuritySchemes) Len ¶
func (g GenSecuritySchemes) Len() int
func (GenSecuritySchemes) Less ¶
func (g GenSecuritySchemes) Less(i, j int) bool
func (GenSecuritySchemes) Swap ¶
func (g GenSecuritySchemes) Swap(i, j int)
type GenSerGroup ¶
type GenSerGroup struct { GenSerializer // All media types for this serializer. The redundant representation allows for easier use in templates AllSerializers GenSerializers }
GenSerGroup represents a group of serializers: this links a serializer to a list of prioritized media types (mime).
type GenSerGroups ¶
type GenSerGroups []GenSerGroup
GenSerGroups sorted representation of serializer groups
func (GenSerGroups) Len ¶
func (g GenSerGroups) Len() int
func (GenSerGroups) Less ¶
func (g GenSerGroups) Less(i, j int) bool
func (GenSerGroups) Swap ¶
func (g GenSerGroups) Swap(i, j int)
type GenSerializer ¶
type GenSerializer struct { AppName string // Application name ReceiverName string Name string // Name of the Producer/Consumer (e.g. json, yaml, txt, bin) MediaType string // mime Implementation string // func implementing the Producer/Consumer Parameters []string // parameters supported by this serializer }
GenSerializer represents a single serializer for a particular media type
type GenSerializers ¶
type GenSerializers []GenSerializer
GenSerializers sorted representation of serializers
func (GenSerializers) Len ¶
func (g GenSerializers) Len() int
func (GenSerializers) Less ¶
func (g GenSerializers) Less(i, j int) bool
func (GenSerializers) Swap ¶
func (g GenSerializers) Swap(i, j int)
type LanguageOpts ¶
type LanguageOpts struct { ReservedWords []string SystemModules []string BaseImportFunc func(string) string `json:"-"` ImportsFunc func(map[string]string) string `json:"-"` // contains filtered or unexported fields }
LanguageOpts to describe a language to the code generator
func (*LanguageOpts) FormatContent ¶
func (l *LanguageOpts) FormatContent(name string, content []byte) ([]byte, error)
FormatContent formats a file with a language specific formatter
func (*LanguageOpts) MangleFileName ¶
func (l *LanguageOpts) MangleFileName(name string) string
MangleFileName makes sure a file name gets a safe name
func (*LanguageOpts) MangleModelName ¶
func (l *LanguageOpts) MangleModelName(modelName string) string
MangleModelName adds "$" prefix to name if it is conflict with KCL keyword
func (*LanguageOpts) MangleName ¶
func (l *LanguageOpts) MangleName(name, suffix string) string
MangleName makes sure a reserved word gets a safe name
func (*LanguageOpts) ManglePackageName ¶
func (l *LanguageOpts) ManglePackageName(name, suffix string) string
ManglePackageName makes sure a package gets a safe name. In case of a file system path (e.g. name contains "/" or "\" on Windows), this return only the last element.
func (*LanguageOpts) ManglePackagePath ¶
func (l *LanguageOpts) ManglePackagePath(name string, suffix string) string
ManglePackagePath makes sure a full package path gets a safe name. Only the last part of the path is altered.
func (*LanguageOpts) MangleVarName ¶
func (l *LanguageOpts) MangleVarName(name string) string
MangleVarName makes sure a reserved word gets a safe name
func (*LanguageOpts) NonEmptyValue ¶ added in v0.5.2
func (l *LanguageOpts) NonEmptyValue(data interface{}) bool
NonEmptyValue checks if a value is non-empty
func (*LanguageOpts) ToKclValue ¶
func (l *LanguageOpts) ToKclValue(data interface{}) string
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
Repository is the repository for the generator templates
func NewRepository ¶
func NewRepository(funcs template.FuncMap) *Repository
NewRepository creates a new template repository with the provided functions defined
func (*Repository) AddFile ¶
func (t *Repository) AddFile(name, data string) error
AddFile adds a file to the repository. It will create a new template based on the filename. It trims the .gotmpl from the end and converts the name using swag.ToJSONName. This will strip directory separators and Camelcase the next letter. e.g validation/primitive.gotmpl will become validationPrimitive
If the file contains a definition for a template that is protected the whole file will not be added
func (*Repository) DumpTemplates ¶
func (t *Repository) DumpTemplates()
DumpTemplates prints out a dump of all the defined templates, where they are defined and what their dependencies are.
func (*Repository) Get ¶
func (t *Repository) Get(name string) (*template.Template, error)
Get will return the named template from the repository, ensuring that all dependent templates are loaded. It will return an error if a dependent template is not defined in the repository.
func (*Repository) LoadDefaults ¶
func (t *Repository) LoadDefaults()
LoadDefaults will load the embedded templates
type SectionOpts ¶
type SectionOpts struct {
Models []TemplateOpts `mapstructure:"models"`
}
SectionOpts allows for specifying options to customize the templates used for generation
type TemplateOpts ¶
type TemplateOpts struct { Name string `mapstructure:"name"` Source string `mapstructure:"source"` Target string `mapstructure:"target"` FileName string `mapstructure:"file_name"` SkipExists bool `mapstructure:"skip_exists"` SkipFormat bool `mapstructure:"skip_format"` }
TemplateOpts allows for codegen customization