我有以下枚举:
public enum TicketQuestionType
{
General = 1,
Billing = 2,
TMS = 3,
HOS = 4,
DeviceManagement = 5
}
模型类:
public class TicketCreateApi
{
public string Subject { get; set; }
public TicketQuestionType QuestionType { get; set; } = TicketQuestionType.General;
public TicketType Type { get; set; } = TicketType.Problem;
public TicketStatus Status { get; set; } = TicketStatus.New;
public TicketPriority Priority { get; set; } = TicketPriority.Normal;
public string Description { get; set; }
public List<string> Attachments { get; set; }
public int? DeviceId { get; set; }
public int? DriverId { get; set; }
}
我的API方法使用它:
Task<IActionResult> Create(TicketCreateApi model);
Swagger生成以下内容:
还有这个
因此,我们只能看到默认值,而无法看到可用枚举列表(名称和值)。我想展示一下。怎么做?
2条答案
按热度按时间ojsjcaue1#
我们只能看到默认值,没有办法看到可用的枚举列表(名称和值)。我想展示一下。怎么做?
要以swagger的字符串形式显示枚举,您可以配置JsonStringEnumConverter,并在ConfigureServices中添加以下行:
输出如下:
如果希望将枚举显示为stings和int值,可以尝试创建EnumSchemaFilter来更改模式。代码如下:
将SwaggerGen配置为在ShemaFilter上方使用。
结果是这样的:
4si2a6ki2#
我试过EnumSchemaFilter。我每次提交请求时都有错误。因为将枚举字符串序列化为int
我用了这个代码块,我希望它能工作