Swagger-Swashbuckle включает xmlcomments из зависимых dll

Мне нужно задокументировать веб-API ядра asp.net, и я использую swagger и автоматику.

Я посмотрел вокруг и нашел эту ссылку, но она старая и не работает https://github.com/domaindrivendev/Swashbuckle/issues/93

Может ли кто-нибудь показать / указать мне, как я могу включить xml-комментарии из другой dll?

Благодарность

Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
0
1 349
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует две версии автомата переключающей передачи:

Если теги в этом вопросе верны, ваша ссылка не на ту версию, которую вы используете, но все же предлагаемое решение должно дать вам хорошее представление о том, что вам нужно делать.

Вы можете включить столько xml-комментариев, сколько хотите, с IncludeXmlComments, который все еще доступен на Swashbuckle.AspNetCore, см. Здесь:
Swashbuckle.AspNetCore.SwaggerGen / Application / SwaggerGenOptions.cs # L259

Сначала вам нужно убедиться, что нужные вам xml-комментарии поступают на сервер как часть вашего развертывания, иначе Swashbuckle не покажет то, чего там нет ...



Решением может быть рекурсивный цикл поиска файлов XML и их добавление с помощью IncludeXmlComments, примерно так:

public void IncludeAllXmlComments(string folder)
{
  if (!string.IsNullOrEmpty(folder))
  {
    foreach (var name in Directory.GetFiles(folder, "*.XML", SearchOption.AllDirectories))
    {
      IncludeXmlComments(filePath: name);
    }
  }
}

Этот пример кода предназначен только для того, чтобы дать вам представление, а не для копирования / макаронных изделий.

Привет, спасибо за ваше время. Я использую Swashbucke.AspNetCore (2.4.0), который, как я полагаю, является последней правильной версией для веб-API ядра asp.net. Правильно? Будет ли решение вывести xmlcomments для каждой dll в конкретный общий каталог и прочитать его оттуда?

developer9969 01.05.2018 15:12

@ developer9969 Да для обоих, xmlcomments для всей вашей dll уже должны выводиться в то же место, где находится dll, по умолчанию это: project\bin\Debug или Release в зависимости от настроек вашей сборки

Helder Sepulveda 01.05.2018 15:27

правильно. Они уже делают. но, глядя на свой псевдокод, вы передавали папку, а затем получали все файлы. что, как я думал, подразумевает, что все dll.xmlcomments выводились в назначенную папку, а не в каталог bin / debig / release по умолчанию

developer9969 01.05.2018 15:29

@ developer9969 Ключевым моментом в моем коде является: Directory.GetFiles(folder, "*.XML", SearchOption.AllDirectories), который получит все файлы .xml в папке и любой подпапке данной папки, поэтому идея состоит в том, чтобы предоставить папке максимально высокий уровень, и позволить GetFiles выполнять работу для вас (я предполагаю, что в вашей папке нет миллионов файлов, это будет плохо, очень плохо)

Helder Sepulveda 01.05.2018 15:39

Другие вопросы по теме