You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
The enumPropertyNaming config option is not supported by the Spring server generator, and all enum properties are generated in upper-case. Having an enum with lower-case properties in the API definition causes the following problem:
In GET requests, the client has to send enum values in upper-case because the server uses Enum.valueOf(String) to create an enum instance from request parameters. The valueOf method expects enum values in upper-case.
In POST requests, the client has to send enum values in lower-case because the server uses a generated fromValue method to create an enum instance from the request body. The fromValue method expects enum values in lower-case.
Describe the solution you'd like
Implementation of the enumPropertyNaming option and setting it to the value 'original' (as in the Kotlin server) would resolve this problem. The generator would generate all enum properties as defined, without changing them to upper-case.
Additional context
The workaround for this problem is to implement a custom type converter for the enum, which uses the generated fromValue method instead of the enum's valueOf. This converter will be used instead of the default converter for request parameters. However, this is only a workaround for the problem.
The text was updated successfully, but these errors were encountered:
I know that option, but it is also a kind of workaround. I need a resolution for the future, so when a new developer adds another enum, he won't have a problem with it. I had a situation where two developers got stuck on that problem.
Same issue found and all the alternatives I bumped into seem to me workarounds affecting maintainability:
First, our input file is a spec from a standard that we should not manipulate. If we use any of x-enum-varnames or the enumNameMappings options, it will force us to manipulate a yaml file that we should use to generate code as is, with no manipulation.
The custom type converter is another workaround, that you are forced to use only for those "unfortunate" cases with controllers involving types where the name of the enum constants and their string values are not the same.
I think the best is to have enumPropertyNaming for java generator, as for several other generators.
Is your feature request related to a problem? Please describe.
The enumPropertyNaming config option is not supported by the Spring server generator, and all enum properties are generated in upper-case. Having an enum with lower-case properties in the API definition causes the following problem:
Describe the solution you'd like
Implementation of the enumPropertyNaming option and setting it to the value 'original' (as in the Kotlin server) would resolve this problem. The generator would generate all enum properties as defined, without changing them to upper-case.
Additional context
The workaround for this problem is to implement a custom type converter for the enum, which uses the generated fromValue method instead of the enum's valueOf. This converter will be used instead of the default converter for request parameters. However, this is only a workaround for the problem.
The text was updated successfully, but these errors were encountered: