Настройка свойства syntaxHighlight для пользовательского интерфейса Swagger с помощью Swashbuckle.AspNetCore

#swagger-ui #swashbuckle.aspnetcore

#swagger-пользовательский интерфейс #swashbuckle.aspnetcore

Вопрос:

Я использую Swashbuckle.AspNetCore для проекта. Версия, с которой я начал, была 5.5.1, и при рендеринге результатов с большими телами (20 тыс. строк json) скорость была очень разумной (выборка данных занимает 50 мс, а рендеринг занимает менее секунды. При обновлении до версии 5.6.x синтаксис теперь подсвечивается (что выглядит красиво), но замедляет рендеринг этих результатов более чем на 20 секунд. И после визуализации любое действие на странице, вызывающее обновление, занимает 20 секунд, пока результаты не будут очищены.

После обычного поиска я хочу попробовать это решение (деактивация syntaxHighlight). Я не уверен, как это сделать с помощью Swashbuckle.AspNetCore. Есть предложения?

 SwaggerUI({
        syntaxHighlight: {
          activated: false,
          theme: "agate"
        },
        //url: path,
        ....
      });
  

Ответ №1:

Привет, у меня была такая же проблема, и после некоторого изучения исходного кода я обнаружил, что вы можете передать дополнительные параметры в ConfigObject таким образом (пример, показывающий, как отключить подсветку синтаксиса):

 app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
    c.RoutePrefix = string.Empty;
    c.ConfigObject.AdditionalItems.Add("syntaxHighlight", false);
});
  

Комментарии:

1. Большое вам спасибо за этот ответ! Я проголосовал за, но у меня нет репутации для его отображения.

2. Большое вам спасибо! Это мне очень помогло.