From 32cac8febe299b1c4652c3e878cfd17575410241 Mon Sep 17 00:00:00 2001 From: Ruben Hoenle Date: Fri, 17 Jul 2026 16:02:56 +0200 Subject: [PATCH 1/2] fix(golang): fallback if "format": "enum" is set for enums relates to #24336 --- .../codegen/languages/AbstractGoCodegen.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 46f071c1d0be..284380cb3846 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -1054,4 +1054,26 @@ protected boolean isNumberType(String datatype) { public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.GO; } + + @Override + public CodegenProperty fromProperty(String name, Schema p, boolean required) { + CodegenProperty property = super.fromProperty(name, p, required); + + if (property.isEnum && "enum".equals(property.dataFormat)) { + property.dataFormat = property.baseType; + } + + return property; + } + + @Override + public CodegenModel fromModel(String name, Schema model) { + CodegenModel codegenModel = super.fromModel(name, model); + + if (codegenModel.isEnum && "enum".equals(codegenModel.getFormat())) { + codegenModel.setFormat(codegenModel.dataType); + } + + return codegenModel; + } } From 3a44bf6b6fabfcd79adf9c733f842602bebd72fd Mon Sep 17 00:00:00 2001 From: Ruben Hoenle Date: Mon, 20 Jul 2026 14:44:18 +0200 Subject: [PATCH 2/2] fix in mustache templates instead --- .../codegen/languages/AbstractGoCodegen.java | 22 ------------------- .../src/main/resources/go/model_enum.mustache | 6 ++--- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 284380cb3846..46f071c1d0be 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -1054,26 +1054,4 @@ protected boolean isNumberType(String datatype) { public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.GO; } - - @Override - public CodegenProperty fromProperty(String name, Schema p, boolean required) { - CodegenProperty property = super.fromProperty(name, p, required); - - if (property.isEnum && "enum".equals(property.dataFormat)) { - property.dataFormat = property.baseType; - } - - return property; - } - - @Override - public CodegenModel fromModel(String name, Schema model) { - CodegenModel codegenModel = super.fromModel(name, model); - - if (codegenModel.isEnum && "enum".equals(codegenModel.getFormat())) { - codegenModel.setFormat(codegenModel.dataType); - } - - return codegenModel; - } } diff --git a/modules/openapi-generator/src/main/resources/go/model_enum.mustache b/modules/openapi-generator/src/main/resources/go/model_enum.mustache index 8509ea20bd67..5b7aaf3f5a51 100644 --- a/modules/openapi-generator/src/main/resources/go/model_enum.mustache +++ b/modules/openapi-generator/src/main/resources/go/model_enum.mustache @@ -1,5 +1,5 @@ // {{{classname}}} {{{description}}}{{^description}}the model '{{{classname}}}'{{/description}} -type {{{classname}}} {{{format}}}{{^format}}{{dataType}}{{/format}} +type {{{classname}}} {{dataType}} // List of {{{name}}} const ( @@ -22,7 +22,7 @@ var Allowed{{{classname}}}EnumValues = []{{{classname}}}{ } func (v *{{{classname}}}) UnmarshalJSON(src []byte) error { - var value {{{format}}}{{^format}}{{dataType}}{{/format}} + var value {{dataType}} err := json.Unmarshal(src, &value) if err != nil { return err @@ -52,7 +52,7 @@ func (v *{{{classname}}}) UnmarshalJSON(src []byte) error { // New{{{classname}}}FromValue returns a pointer to a valid {{{classname}}} // for the value passed as argument, or an error if the value passed is not allowed by the enum -func New{{{classname}}}FromValue(v {{{format}}}{{^format}}{{dataType}}{{/format}}) (*{{{classname}}}, error) { +func New{{{classname}}}FromValue(v {{dataType}}) (*{{{classname}}}, error) { ev := {{{classname}}}(v) if ev.IsValid() { return &ev, nil