swagger-api / swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
http://swagger.io
Apache License 2.0
16.98k stars 6.03k forks source link

Enum set with specific int is ignored #4256

Open NybergJohan opened 7 years ago

NybergJohan commented 7 years ago
Description

My csharp enum which starts with Regular = 1 becomes Regular = 0 after code is generated.

Swagger-codegen version 2.2.1

csharp class: public enum UserType { Regular = 1, Admin, Ad }

swagger.json: "enum":["Regular","Admin","Ad"],"type":"string"

Generated code by swagger-codegen-cli: [JsonConverter(typeof(StringEnumConverter))] public enum TypeEnum { [EnumMember(Value = "Regular")] Regular, [EnumMember(Value = "Admin")] Admin, [EnumMember(Value = "Ad")] Ad }

Command line used for generation

java -jar swagger-codegen-cli.jar generate -i http://localhost:61387/swagger/v1/swagger.json -l csharp -o samples/client/

wing328 commented 7 years ago

Given the below code generated by codegen:

[JsonConverter(typeof(StringEnumConverter))]
public enum TypeEnum
{
[EnumMember(Value = "Regular")]
Regular,
[EnumMember(Value = "Admin")]
Admin,
[EnumMember(Value = "Ad")]
Ad
}

What should the correct code look like?

We need to leverage vendor extension to specify the starting number (1 in your case)