.NET Core 2.1 Swashbuckle - группировка контроллеров по областям - PullRequest
0 голосов
/ 27 ноября 2018

Моя ситуация довольно проста.У меня очень большой .NET Core 2.1 MVC / WebApi, разделенный на несколько областей, представляющих различные модули моей системы.Я использую Swagger (SwashBuckle), и он работает очень хорошо.Моя маршрутизация похожа на {area}/{controller}/{action}.

. В Swagger UI каждое действие группируется в контроллеры (стандартное поведение).Мой список контроллеров и операций становится очень большим и трудным для понимания.Из-за этого мне бы очень хотелось, если бы Swagger мог разделить мои контроллеры на разные области!Позволяя свернуть area x и каждый контроллер в пределах area x.

Я действительно скучаю по этой функции или способу реализовать ее самостоятельно!Любые идеи приветствуются!

ОБНОВЛЕНИЕ

Я пытался аннотировать действия с тегами.

Это дает мне:

- Area 1
    - MethodFromControllerA()
    - MethodFromControllerB()
- Area 2
    - MethodFromControllerC()
    - MethodFromControllerD()

Что я хочу:

- Area 1
    - ControllerA
        - MethodFromControllerA()
    - ControllerB
        - MethodFromControllerB()
- Area 2
    - ControllerC
        - MethodFromControllerC()
    - ControllerD
        - MethodFromControllerD()

Обновление 2

Другим вариантом будет иметь несколько спецификаций для каждой из моих областей.Как разные интерфейсы Swagger для каждой области.Возможно ли это?

1 Ответ

0 голосов
/ 27 ноября 2018

Сначала необходимо установить аннотации и включить их при запуске:

services.AddSwaggerGen(c =>
{
   c.EnableAnnotations();
});

Затем вам необходимо добавить свою «область» в качестве тега к каждому действию.

[SwaggerOperation(
    Tags = new[] { "Area51" }
)]

Когда вы открываете пользовательский интерфейс Swagger, он должен теперь автоматически группироваться по тегу (по умолчанию имя контроллера - это выбранный тег).

Дальнейшая вложенная группировка конечных точек в настоящее время невозможна изкоробка с существующим генератором пользовательского интерфейса.

...