указать, какой API задокументирован Swagger - PullRequest
0 голосов
/ 13 марта 2020

Я новичок в Swagger, и он установлен и работает, но он собирает гораздо больше файлов API, чем нужно. Я искал способ указать, какой API документирован.

Swashbuckler.AspNetCore и .netcore 3.1.

Я не могу найти способ контролировать, какой API документирован.

Приветствия

1 Ответ

2 голосов
/ 13 марта 2020

Вы можете поместить атрибут ApiExplorerSettings на контроллер, чтобы удалить его из Swagger:

[ApiExplorerSettings(IgnoreApi = true)]
public class TestApiController : ControllerBase
{
}

Если вы хотите применить это на многих контроллерах, основанных на некоторых логиках c, это можно сделать например, с соглашением модели действия: https://github.com/juunas11/AspNetCoreHideRoutesFromSwagger/blob/983bad788755b4a81d2cce30f82bc28887b61924/HideRoutesFromSwagger/Controllers/SecondController.cs#L18 -L28

public class ActionHidingConvention : IActionModelConvention
{
    public void Apply(ActionModel action)
    {
        // Replace with any logic you want
        if (action.Controller.ControllerName == "Second")
        {
            action.ApiExplorer.IsVisible = false;
        }
    }
}

Соглашение добавлено в ConfigureServices как:

services.AddControllers(o =>
{
    o.Conventions.Add(new ActionHidingConvention());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...