怎么在swagger文档显示枚举的字符串
时间: 2024-03-12 10:50:30 浏览: 38
在Swagger中,可以使用`SwaggerDocumentFilter`或`SwaggerSchemaFilter`来定制枚举类型的显示方式。其中,`SwaggerDocumentFilter`可以用于修改整个API文档,而`SwaggerSchemaFilter`只会影响模型定义。
以下是一个示例`SwaggerSchemaFilter`,用于将枚举类型的值显示为字符串:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
public class EnumAsStringSchemaFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (schema.Enum != null && schema.Enum.Count > 0 && schema.Type == "integer")
{
// Convert integer enum values to string
schema.Type = "string";
schema.Enum = schema.Enum.Select(e => Enum.GetName(context.Type, e)).Cast<IOpenApiAny>().ToList();
}
}
}
```
然后,在`Startup.cs`中注册这个`SwaggerSchemaFilter`:
```csharp
services.AddSwaggerGen(options =>
{
// Register the schema filter
options.SchemaFilter<EnumAsStringSchemaFilter>();
// Other Swagger options...
});
```
现在,Swagger将会将枚举类型的值以字符串形式显示。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)