当前位置: 首页 > 知识库问答 >
问题:

ASP.NET核心Swashbuckle集操作ID

齐招
2023-03-14

如何在ASP.NET Core2.1项目中设置swaggeroperationid属性?根据这篇文章,我应该使用swaggerOperationAttribute,但我在swashbuckle.aspnetcore库中找不到它。还有IOPerationFilter

public interface IOperationFilter
{
    void Apply(Operation operation, OperationFilterContext context);
}

而且我找不到任何用于大摇大摆生成目的的实现。

共有1个答案

梁丘远航
2023-03-14

还有另外两个选项,无需编写任何额外的代码或添加额外的依赖项,如swashbuckle.aspnetcore.annotations

选项1:基于约定-Swaggergen有一个设置CustomOperationIDs的选项。因此,您可以简单地将其设置为使用controllername_httpmethod,如下所示:

services.AddSwaggerGen(c =>
{
    c.CustomOperationIds(e => $"{e.ActionDescriptor.RouteValues["controller"]}_{e.HttpMethod}");
    c.SwaggerDoc("v1", new Info { Title = "Test API", Version = "v1" });
});

这将按照controllername_httpmethod约定向所有方法添加operationIds。

[HttpPost(Name="Post_Person")]
[ProducesResponseType(200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<ActionResult<Response>> PostAsync([FromBody]Request request)
{
    Response result = await _context.PostAsync(request);
    return Ok(result);
}
 类似资料:
  • 我很难让swashbuckle.aspnetcore(1.0.0)包生成任何输出。我读到swagger.json文件应该写到'~/swagger/docs/v1'。然而,我没有得到任何输出。 我从一个全新的ASP.NET核心API项目开始。我应该提到这是ASP.NET Core2。API可以工作,我可以从values控制器检索值。 我的启动类的配置与本文描述的完全相同(GitHub上的swashb

  • 我们试图覆盖Swashbuckle/Swagger IO代码根命名约定,当它为现有的500多个控制器和相应的方法创建Angular API服务代理时。 目前正在将Net Core3 API与Angular打字脚本连接起来。 https://stackoverflow.com/a/54294810/13889515

  • .NET核心和ASP.NET核心到底有什么区别?

  • 我正在使用ASP.NET内核。我正在创建一个基本的WebAPI。我想在出现问题时显示一个JSON错误。 打印屏幕在我的屏幕上显示want I want。唯一的问题是它的发送状态码为200。 我可以通过这样做来解决问题: 真诚的,布莱希特

  • 在ASP.NET MVC5中,您可以抛出一个带有HTTP代码的HttpException,这将设置如下所示的响应: ASP.NET核心中不存在。等价代码是什么?

  • 我的实际情况是,我允许在实现自定义参数绑定的API控制器上使用参数绑定进行依赖注入。 例如,控制器动作可能如下所示: 当我使用Swashbuckle生成的Swagger UI探索我的API时,< code>customerFacade被指定为一个实际的和必需的资源动作参数。 您知道从生成的 Swagger UI 中排除控制器操作参数的任何方法吗? 注意:我知道解决方法可以使用构造函数注入注入依赖项