Описание ответа Swagger не показано - PullRequest
0 голосов
/ 28 мая 2020

В настоящее время я пытаюсь отобразить описание конкретного ответа в пользовательском интерфейсе Swagger, но, похоже, нет документации, которая бы действительно охватывала все аспекты этого, и все примеры, которые я пробовал из Get запущен с Swashbuckle и ASP. NET Core не работают. NET Core 3.1 ...

        /// <summary>
        /// Test route...
        /// </summary>
        /// <returns></returns>
        /// <response code="200">This is a test</response>
        [HttpGet]
        [ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
        public IActionResult Get()
        {
            return Ok("Hello World");
        }

Мой .csproj также содержит следующее:

  <PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

Пользовательский интерфейс Swagger в конечном итоге выглядит следующим образом (и, как вы можете видеть, столбец «Descriptipn» не содержит текста «Это тестовый», как это, вероятно, должно быть). Я что-то упустил?

Image preview

Я также добавил к нему [SwaggerResponse(StatusCodes.Status200OK, ...)], но ничего не изменилось.

Ответы [ 2 ]

1 голос
/ 28 мая 2020

В свойствах вашего проекта вы должны отметить Output XML documentation file, найденный под лезвием Build. Затем в вашем startup файле:

services.AddSwaggerGen(c =>
{
    //rest of your code

    //i'm using the default path generated, but you can adjust it as you want
    var XMLPath = AppDomain.CurrentDomain.BaseDirectory + nameof(MyNamespace) + ".xml";
    if (File.Exists(XMLPath))
    {
        c.IncludeXmlComments(XMLPath);
    }
});

Если это все еще не работает, проверьте, появляется ли файл xml в папке bin. Если нет, проверьте свойства в Visual Studio и измените Copy to output directory на Copy или Copy if newer.

0 голосов
/ 28 мая 2020

Как оказалось, [SwaggerResponse] работает правильно, но раньше мне нужно «включить аннотации» в моем автозагрузке ...

    services.AddSwaggerGen(config =>
    {
        config.SwaggerDoc("v1", new OpenApiInfo
        {
            Title = "Some API",
            Version = "v1"
        });

        config.EnableAnnotations();
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...