Swagger UI Web Api documentation Present enums as strings?

后端 未结 20 1995
半阙折子戏
半阙折子戏 2020-11-27 11:31

Is there a way to display all enums as their string value in swagger instead of their int value?

I want to be able to submit POST actions and put enums according to

20条回答
  •  迷失自我
    2020-11-27 11:37

    With asp.net core 3

    using System.Text.Json.Serialization;
    
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
             services.AddControllers().AddJsonOptions(options =>
                 options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()));
    

    But it seems that Swashbuckle Version 5.0.0-rc4 is not ready to support that. So we need to use an option(deprecated) in the Swashbuckle config file until it supports and reflects it like Newtonsoft library.

    public void ConfigureServices(IServiceCollection services)
    { 
          services.AddSwaggerGen(c =>
          {
                c.DescribeAllEnumsAsStrings();
    

    The difference between this answer and other answers is using only the Microsoft JSON library instead of Newtonsoft.

提交回复
热议问题