Как удалить имя контроллера из методов документации Swagger - PullRequest
1 голос
/ 23 января 2020

Я использую Swashbuckle для получения документации Swagger в моем C# контроллере. Если у меня есть контроллер следующим образом:

public class CommandController : ApiController
{
    public CommandResult Cancel(...)
    { ...}

    public CommandResult Status(...)
    { ...}

}

Тогда я могу получить do c через http://localhost/swagger/ui/docs, и я генерирую do c в HTML или любом другом формате, это будет выглядеть следующим образом:

REST API Docs

В над командами слева ставится префикс с именем контроллера.

Есть ли способ удалить префикс контроллера и иметь только имя метода?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

У меня был похожий вопрос, и я только что нашел его в официальном do c ( ссылка )

Вариант 2) Укажите собственную стратегию

// 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"
1 голос
/ 23 января 2020

Ответ (от NanoWar) на эту проблему GitHub, кажется, отвечает на ваш вопрос: https://github.com/swagger-api/swagger-codegen/issues/6164

Это включает добавление OperationFilter к вашему SwaggerConfig.

...