c# - 如何让 Swagger 将模型模式枚举生成为字符串而不是 int?
问题描述
我有一个基于 .NET Core 3 的 Web API 项目,我的 Startup 看起来像这样。
services.AddControllers(o => o.EnableEndpointRouting = false)
.AddMvcOptions(o =>
{
//Add mvc options here
})
.AddNewtonsoftJson(o =>
{
o.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
o.SerializerSettings.Converters.Add(new StringEnumConverter());
o.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'";
})
.SetCompatibilityVersion(CompatibilityVersion.Latest);
Swagger 生成模式为:
status MyEnumStatusinteger($int32)
Enum:
[ 1, 2, 3]
我的 C# 枚举如下所示:
public enum TimesheetWorkflowStatus
{
NotStarted = 1,
InProgress = 2,
Completed = 3
}
为什么 Swagger 将此枚举记录为 int 而不是字符串?我试过使用DescribeAllEnumsAsStrings
,但它已经过时了。我在这里错过了什么吗?
解决方案
我从这里找到了解决方案。我必须添加services.AddSwaggerGenNewtonsoftSupport()
以services.AddSwaggerGen()
使其工作。
推荐阅读
- javascript - 如何对导致一些繁重的异步处理的用户事件进行序列化
- android - Firebase 实时数据库 数据消耗大
- node.js - NodeJs 部署在已包含内容的站点上
- python - 在两个边界之间积分高斯分布 [Python]
- typescript - 排除 node_modules 时出现打字稿错误
- kotlin - Kotlin 在 for 循环中跳过下一次迭代
- swift - 斯威夫特:如何设置最大/最小平移手势?
- ruby-on-rails - 使用哈希数组查询活动记录
- swift - 过滤联系人返回混合的联系人信息 - Swift
- ios - Phaser js和Apache Cordova绿色矩形错误