Documentation for the go Generator
METADATA
Property | Value | Notes |
---|---|---|
generator name | go | pass this to the generate command after -g |
generator stability | STABLE | |
generator type | CLIENT | |
generator language | Go | |
generator default templating engine | mustache | |
helpTxt | Generates a Go client library. |
CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
Option | Description | Values | Default |
---|---|---|---|
disallowAdditionalPropertiesIfNotPresent | If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. |
| true |
enumClassPrefix | Prefix enum with class name | false | |
generateInterfaces | Generate interfaces for api classes | false | |
generateMarshalJSON | Generate MarshalJSON method | true | |
generateUnmarshalJSON | Generate UnmarshalJSON method | true | |
hideGenerationTimestamp | Hides the generation timestamp when files are generated. | true | |
isGoSubmodule | whether the generated Go module is a submodule | false | |
packageName | Go package name (convention: lowercase). | openapi | |
packageVersion | Go package version. | 1.0.0 | |
prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | false | |
structPrefix | whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts | false | |
useDefaultValuesForRequiredVars | Use default values for required variables when available | false | |
useOneOfDiscriminatorLookup | Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped. | false | |
withAWSV4Signature | whether to include AWS v4 signature support | false | |
withGoMod | Generate go.mod and go.sum | true | |
withXml | whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML) | false |
IMPORT MAPPING
Type/Alias | Imports |
---|
INSTANTIATION TYPES
Type/Alias | Instantiated By |
---|
LANGUAGE PRIMITIVES
- bool
- byte
- complex128
- complex64
- float32
- float64
- int
- int32
- int64
- interface
- map[string]interface
- rune
- string
- uint
- uint32
- uint64
RESERVED WORDS
- bool
- break
- byte
- case
- chan
- complex128
- complex64
- const
- continue
- default
- defer
- else
- error
- fallthrough
- float32
- float64
- for
- func
- go
- goto
- if
- import
- int
- int16
- int32
- int64
- int8
- interface
- map
- nil
- package
- range
- return
- rune
- select
- string
- struct
- switch
- type
- uint
- uint16
- uint32
- uint64
- uint8
- uintptr
- var
FEATURE SET
Client Modification Feature
Name | Supported | Defined By |
---|---|---|
BasePath | ✓ | ToolingExtension |
Authorizations | ✗ | ToolingExtension |
UserAgent | ✓ | ToolingExtension |
MockServer | ✗ | ToolingExtension |
Data Type Feature
Name | Supported | Defined By |
---|---|---|
Custom | ✗ | OAS2,OAS3 |
Int32 | ✓ | OAS2,OAS3 |
Int64 | ✓ | OAS2,OAS3 |
Float | ✓ | OAS2,OAS3 |
Double | ✓ | OAS2,OAS3 |
Decimal | ✓ | ToolingExtension |
String | ✓ | OAS2,OAS3 |
Byte | ✓ | OAS2,OAS3 |
Binary | ✓ | OAS2,OAS3 |
Boolean | ✓ | OAS2,OAS3 |
Date | ✓ | OAS2,OAS3 |
DateTime | ✓ | OAS2,OAS3 |
Password | ✓ | OAS2,OAS3 |
File | ✓ | OAS2 |
Uuid | ✗ | |
Array | ✓ | OAS2,OAS3 |
Null | ✗ | OAS3 |
AnyType | ✓ | OAS2,OAS3 |
Object | ✓ | OAS2,OAS3 |
Maps | ✓ | ToolingExtension |
CollectionFormat | ✓ | OAS2 |
CollectionFormatMulti | ✓ | OAS2 |
Enum | ✓ | OAS2,OAS3 |
ArrayOfEnum | ✓ | ToolingExtension |
ArrayOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
ArrayOfCollectionOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
MapOfEnum | ✓ | ToolingExtension |
MapOfModel | ✓ | ToolingExtension |
MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
MapOfCollectionOfModel | ✓ | ToolingExtension |
MapOfCollectionOfEnum | ✓ | ToolingExtension |
Documentation Feature
Name | Supported | Defined By |
---|---|---|
Readme | ✓ | ToolingExtension |
Model | ✓ | ToolingExtension |
Api | ✓ | ToolingExtension |
Global Feature
Name | Supported | Defined By |
---|---|---|
Host | ✓ | OAS2,OAS3 |
BasePath | ✓ | OAS2,OAS3 |
Info | ✓ | OAS2,OAS3 |
Schemes | ✗ | OAS2,OAS3 |
PartialSchemes | ✓ | OAS2,OAS3 |
Consumes | ✓ | OAS2 |
Produces | ✓ | OAS2 |
ExternalDocumentation | ✓ | OAS2,OAS3 |
Examples | ✓ | OAS2,OAS3 |
XMLStructureDefinitions | ✗ | OAS2,OAS3 |
MultiServer | ✗ | OAS3 |
ParameterizedServer | ✓ | OAS3 |
ParameterStyling | ✗ | OAS3 |
Callbacks | ✗ | OAS3 |
LinkObjects | ✗ | OAS3 |
Parameter Feature
Name | Supported | Defined By |
---|---|---|
Path | ✓ | OAS2,OAS3 |
Query | ✓ | OAS2,OAS3 |
Header | ✓ | OAS2,OAS3 |
Body | ✓ | OAS2 |
FormUnencoded | ✓ | OAS2 |
FormMultipart | ✓ | OAS2 |
Cookie | ✓ | OAS3 |
Schema Support Feature
Name | Supported | Defined By |
---|---|---|
Simple | ✓ | OAS2,OAS3 |
Composite | ✓ | OAS2,OAS3 |
Polymorphism | ✗ | OAS2,OAS3 |
Union | ✗ | OAS3 |
allOf | ✓ | OAS2,OAS3 |
anyOf | ✓ | OAS3 |
oneOf | ✓ | OAS3 |
not | ✗ | OAS3 |
Security Feature
Name | Supported | Defined By |
---|---|---|
BasicAuth | ✓ | OAS2,OAS3 |
ApiKey | ✓ | OAS2,OAS3 |
OpenIDConnect | ✗ | OAS3 |
BearerToken | ✓ | OAS3 |
OAuth2_Implicit | ✓ | OAS2,OAS3 |
OAuth2_Password | ✗ | OAS2,OAS3 |
OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
SignatureAuth | ✓ | OAS3 |
AWSV4Signature | ✓ | ToolingExtension |
Wire Format Feature
Name | Supported | Defined By |
---|---|---|
JSON | ✓ | OAS2,OAS3 |
XML | ✓ | OAS2,OAS3 |
PROTOBUF | ✗ | ToolingExtension |
Custom | ✗ | OAS2,OAS3 |