【问题标题】:Swagger describe response when endpoint returns enumSwagger 描述端点返回枚举时的响应
【发布时间】:2017-11-16 05:55:01
【问题描述】:

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

但我想要这样的东西:

从广义上讲,我希望我的枚举能够描述它们可以采用的值。

这是我的招摇配置:

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
}

【问题讨论】:

  • 你也可以添加你的枚举定义吗?
  • 已添加到问题中。

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


【解决方案1】:

尝试将您的枚举更改为:

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

在我的情况下,这是有效的。 您可能还需要更改一些其他代码...

【讨论】:

  • 在我的情况下不起作用。也许我在配置中遗漏了一些东西。
  • 和我的配置差不多。唯一不同的是,我将枚举用作类的属性。
  • 是的,作为一个类的属性,它可以工作,但有趣的是,当它不是一个类的一部分时它为什么不能工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 2015-12-30
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多