Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swagger enum with names

Is it possilbe in Swashbuckle.AspNetCore.Swagger (6.1.1) to get such enum with names? I need better names for generate API client for frontend app.

public enum BasketResourceEnum
{
    Stocks = 1,
    Currencies
}

Now I get such representation in json, I need name instead of int values

  "BasketResourceEnum": {
    "enum": [
      1,
      2
    ],
    "type": "integer",
    "format": "int32"
  },
like image 785
Jacek Avatar asked Sep 03 '26 20:09

Jacek


2 Answers

services
    .AddControllers()
    .AddJsonOptions(options => 
        options.SerializerSettings.Converters.Add(new StringEnumConverter()));
like image 153
user3119533 Avatar answered Sep 06 '26 11:09

user3119533


If you prefer to use System.Text.Json:

using System.Text.Json.Serialization;
...
var builder = WebApplication.CreateBuilder(args);
builder.Services
    .AddControllers()
    .AddJsonOptions(options => options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()));
like image 45
user1007074 Avatar answered Sep 06 '26 09:09

user1007074



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!