C # NSwag и swagger-codegen с Enums - PullRequest
       78

C # NSwag и swagger-codegen с Enums

0 голосов
/ 04 октября 2018

У меня есть .Net Core v2.1 Web API, который использует NSwag для генерации своего Swagger Json.

У меня есть модель ответа как таковая -

public class LoginResponse
{
    public LoginResult LoginResult { get; set; }
}

public enum LoginResult
{
    AwaitingEmailConfirmation = 0,
    Locked = 1,
    Failed = 2,
    Success = 3
}

, которая генерирует SwaggerJSON - -

"definitions":{  
"LoginResponse":{  
   "type":"object",
   "additionalProperties":false,
   "required":[  
      "loginResult"
   ],
   "properties":{  
      "loginResult":{  
         "$ref":"#/definitions/LoginResult"
      }
   }
},
"LoginResult":{  
   "type":"integer",
   "description":"",
   "x-enumNames":[  
      "AwaitingEmailConfirmation",
      "Locked",
      "Failed",
      "Success"
   ],
   "enum":[  
      0,
      1,
      2,
      3
   ]
},

, и когда я запускаю swagger codegen в JSON, я получаю следующую модель LoginResult в моем проекте IO.Swagger для C # (выбрана targetFramework 5.0) -

[JsonConverter(typeof(StringEnumConverter))]

public enum LoginResult
{

    /// <summary>
    /// Enum _0 for value: 0
    /// </summary>
    [EnumMember(Value = "0")]
    _0 = 1,

    /// <summary>
    /// Enum _1 for value: 1
    /// </summary>
    [EnumMember(Value = "1")]
    _1 = 2,

    /// <summary>
    /// Enum _2 for value: 2
    /// </summary>
    [EnumMember(Value = "2")]
    _2 = 3,

    /// <summary>
    /// Enum _3 for value: 3
    /// </summary>
    [EnumMember(Value = "3")]
    _3 = 4
  }

}

Couldкто-нибудь, помогите описать, как я получаю перечисления с теми же именами и т. д., что и исходная модель LoginResult в IO.Swagger, сгенерированный клиентский код с использованием swagger-codegen?

...