feat: show enum name instead value
This commit is contained in:
@ -21,6 +21,7 @@ public static class SwaggerConfiguration
|
|||||||
options.SchemaFilter<ExampleFilter>();
|
options.SchemaFilter<ExampleFilter>();
|
||||||
options.OperationFilter<DefaultValues>();
|
options.OperationFilter<DefaultValues>();
|
||||||
options.OperationFilter<ActionResultSchemaFilter>();
|
options.OperationFilter<ActionResultSchemaFilter>();
|
||||||
|
options.SchemaFilter<EnumSchemaFilter>();
|
||||||
var basePath = AppDomain.CurrentDomain.BaseDirectory;
|
var basePath = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
|
||||||
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
||||||
|
28
Endpoint/Configuration/SwaggerOptions/EnumSchemaFilter.cs
Normal file
28
Endpoint/Configuration/SwaggerOptions/EnumSchemaFilter.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using Microsoft.OpenApi.Any;
|
||||||
|
using Microsoft.OpenApi.Models;
|
||||||
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Mirea.Api.Endpoint.Configuration.SwaggerOptions;
|
||||||
|
|
||||||
|
public class EnumSchemaFilter : ISchemaFilter
|
||||||
|
{
|
||||||
|
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
|
||||||
|
{
|
||||||
|
if (!context.Type.IsEnum)
|
||||||
|
return;
|
||||||
|
|
||||||
|
schema.Enum.Clear();
|
||||||
|
|
||||||
|
var enumValues = Enum.GetNames(context.Type)
|
||||||
|
.Select(name => new OpenApiString(name))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (var value in enumValues)
|
||||||
|
schema.Enum.Add(value);
|
||||||
|
|
||||||
|
schema.Type = "string";
|
||||||
|
schema.Format = null;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user