[REQ] Add enumClassPrefix option for Go server
Created by: mraineri
Is your feature request related to a problem? Please describe.
I'm currently trying to build a Go server from an OpenAPI spec that contains enumerations where some values are re-used in different enumerations. Doing so today, it results in the following errors when building:
$ go build
# github.com/GIT_USER_ID/GIT_REPO_ID/go
go/model_account_service_v1_7_1_account_provider_types.go:19:2: OEM redeclared in this block
previous declaration at go/model_acceleration_function_v1_0_2_acceleration_function_type.go:23:57
go/model_account_service_v1_7_1_authentication_types.go:19:2: OEM redeclared in this block
previous declaration at go/model_account_service_v1_7_1_account_provider_types.go:19:47
Describe the solution you'd like
Issue #535 discusses this same problem in the context of Go clients, and others have been able to get around this by using the enumClassPrefix option to add the name of the enumeration to the enum values in order to ensure uniqueness. The Go server option list is limited and does not currently support enumClassPrefix. I would like the same functionality to be made available for Go server code generation.
Describe alternatives you've considered
Changing all enumeration values to ensure uniqueness in the specification itself would be another way around this, but unfortunately the API is shipping at this time and would break compatibility with existing clients.