它可能在Swashuckle. AspNetCore.Swagger(6.1.1)获得这样的枚举与名称?我需要更好的名称生成API客户端的前端应用程序。
public enum BasketResourceEnum
{
Stocks = 1,
Currencies
}
现在我在json中得到这样的表示,我需要名称而不是int值
"BasketResourceEnum": {
"enum": [
1,
2
],
"type": "integer",
"format": "int32"
},
services
.AddControllers()
.AddJsonOptions(options =>
options.SerializerSettings.Converters.Add(new StringEnumConverter()));
如果您更喜欢使用System. Text.Json
:
using System.Text.Json.Serialization;
...
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddControllers()
.AddJsonOptions(options => options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()));
如果您不想选择将枚举值序列化为字符串,而只是在Swagger中描述其成员的名称,您可以使用此nuget。
在最小的API您可以:
using Unchase.Swashbuckle.AspNetCore.Extensions.Extensions;
...
builder.Services.ConfigureSwaggerGen(options =>
{
options.AddEnumsWithValuesFixFilters();
});