feat: show enum name instead value
This commit is contained in:
@ -21,6 +21,7 @@ public static class SwaggerConfiguration
|
||||
options.SchemaFilter<ExampleFilter>();
|
||||
options.OperationFilter<DefaultValues>();
|
||||
options.OperationFilter<ActionResultSchemaFilter>();
|
||||
options.SchemaFilter<EnumSchemaFilter>();
|
||||
var basePath = AppDomain.CurrentDomain.BaseDirectory;
|
||||
|
||||
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