Я использую пакет Swashbuckle NuGet в своем проекте веб-API и пытался заменить стандартный интерфейс Swagger на этот
https://github.com/jensoleg/swagger-ui
но я получаю это сообщение об ошибке
<?xml version="1.0" encoding="ISO-8859-1"?>
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>Embedded resource not found - ReportsAPI.swagger-ui.Index.html</ExceptionMessage>
<ExceptionType>Swashbuckle.SwaggerUi.AssetNotFound</ExceptionType>
<StackTrace> at Swashbuckle.SwaggerUi.EmbeddedAssetProvider.GetEmbeddedResourceStreamFor(EmbeddedAssetDescriptor resourceDescriptor, String rootUrl) at Swashbuckle.SwaggerUi.EmbeddedAssetProvider.GetAsset(String rootUrl, String path) at Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)</StackTrace>
</Error>
Я последовал совету из этого поста
Полностью заменить интерфейс Swashbuckle
Но не смог заставить его работать
У меня есть базовый ASP.Net Web API 2 (простой API для отдыха без веб-сайта или индекса HTML)
Поэтому я скачал zip-файл со страницы swagger-ui на GitHub, скопировал папку dist в свой проект и включил ее в качестве (пробовал как Content, так и Embedded) - и переименовал папку dist в swagger-ui
Итак, моя корневая папка проекта теперь выглядит как
Затем я изменил свою конфигурацию Swagger, добавив следующее
c.CustomAsset("index", thisAssembly, "ReportsAPI.swagger-ui.Index.html");
Это правильно? Я не уверен, куда идти отсюда
Нужно ли включать все другие файлы в качестве встроенного ресурса? Или только Index.html? Чем я помечаю другие файлы как, Контент? Копировать всегда?