如何从 Swagger 文档方法中删除控制器名称
How to remove the Controller Name from Swagger Documentation methods
我正在使用 Swashbuckle 在我的 C# 控制器中包含 Swagger 文档
如果我有如下控制器:
public class CommandController : ApiController
{
public CommandResult Cancel(...)
{ ...}
public CommandResult Status(...)
{ ...}
}
然后我可以通过 http://localhost/swagger/ui/docs 获取文档并以 HTML 或任何其他格式生成文档,它将如下所示:
在上面左侧的命令以控制器名称为前缀。
有没有办法去掉控制器前缀,只保留方法名?
NanoWar 对此 GitHub 问题的回应似乎回答了您的问题:https://github.com/swagger-api/swagger-codegen/issues/6164
它涉及将 OperationFilter 添加到您的 SwaggerConfig。
我有类似的问题,我刚刚在官方文档中找到它(link)
Option 2) Provide a custom strategy
// Startup.cs
services.AddSwaggerGen(c =>
{
...
// Use method name as operationId
c.CustomOperationIds(apiDesc =>
{
return apiDesc.TryGetMethodInfo(out MethodInfo methodInfo) ? methodInfo.Name : null;
});
})
// ProductsController.cs
[HttpGet("{id}")]
public IActionResult GetProductById(int id) // operationId = "GetProductById"
对于遇到 swagger 生成的接口、模型或服务名称问题的任何人,you may find this bash script helpful 预处理 swagger 文件,post 处理生成的输出文件。
我正在使用 Swashbuckle 在我的 C# 控制器中包含 Swagger 文档 如果我有如下控制器:
public class CommandController : ApiController
{
public CommandResult Cancel(...)
{ ...}
public CommandResult Status(...)
{ ...}
}
然后我可以通过 http://localhost/swagger/ui/docs 获取文档并以 HTML 或任何其他格式生成文档,它将如下所示:
在上面左侧的命令以控制器名称为前缀。
有没有办法去掉控制器前缀,只保留方法名?
NanoWar 对此 GitHub 问题的回应似乎回答了您的问题:https://github.com/swagger-api/swagger-codegen/issues/6164
它涉及将 OperationFilter 添加到您的 SwaggerConfig。
我有类似的问题,我刚刚在官方文档中找到它(link)
Option 2) Provide a custom strategy
// Startup.cs
services.AddSwaggerGen(c =>
{
...
// Use method name as operationId
c.CustomOperationIds(apiDesc =>
{
return apiDesc.TryGetMethodInfo(out MethodInfo methodInfo) ? methodInfo.Name : null;
});
})
// ProductsController.cs
[HttpGet("{id}")]
public IActionResult GetProductById(int id) // operationId = "GetProductById"
对于遇到 swagger 生成的接口、模型或服务名称问题的任何人,you may find this bash script helpful 预处理 swagger 文件,post 处理生成的输出文件。