gpt4 book ai didi

C#NSwag和带有Enums的swagger-codegen

转载 作者:行者123 更新时间:2023-12-03 16:25:34 26 4
gpt4 key购买 nike

我有一个.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
}

生成-的Swagger JSON-
"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
]
},

当在JSON上运行swagger codegen时,我在IO.Swagger项目中为C#获得了以下LoginResult模型(选择了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
}

}

有人可以帮助描述我如何让枚举生成与IO.Swagger中使用swagger-codegen生成的客户端代码相同的名称,如IO中的原始LoginResult模型吗?

最佳答案

您可以在启动时使用以下代码:

services.AddMvc(option => option.EnableEndpointRouting = false).AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
});

关于C#NSwag和带有Enums的swagger-codegen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52649034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com