Swagger描述端点返回枚举时的响应

时间:2017-06-14 07:51:13

标签: c# enums asp.net-core swagger asp.net-core-webapi

我的ASP.NET Core Web API中有一个标有以下标记[ProducesResponseType(typeof(SomeEnum), 200)]的端点。其中SomeEnum是包含两个或更多值的枚举。我使用Swagger生成文档。当我运行项目并导航到api文档页面时,问题就出现了。对于此端点,我所拥有的唯一文档是:

enter image description here

但我希望有这样的事情: enter image description here

从广义上讲,我希望我的枚举能够描述他们可以采取的价值观。

这是我的招摇配置:

services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "API", Version = "v1" });

                var fileName = this.GetType().GetTypeInfo().Module.Name.Replace(".dll", ".xml");

                c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, fileName));

            c.DescribeAllEnumsAsStrings();

            c.OperationFilter<AddAuthorizationHeader>();
        });

要添加的枚举定义的示例:

public enum SomeSampleEnum 
{
  Success,
  Fail,
  OperationResult
}

1 个答案:

答案 0 :(得分:0)

尝试将您的枚举更改为:

public enum SomeSampleEnum 
{
  Success = 1,
  Fail = 2,
  OperationResult = 3
}

在我的案例中有效。 您可能还需要更改其他一些代码......