我在我的Web api项目中使用了Swashbuckle NuGet软件包,并且我试图用此替换默认的Swagger UI。 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>
我听了这篇文章的建议 Replace Swashbuckle UI completely
但是无法正常工作
我有一个基本的ASP.Net Web API 2(没有网站或html索引的简单的REST API)
因此,我从swagger-ui的GitHub页面下载了zip文件,并将dist文件夹复制到我的项目中,并将其包含为(尝试了Content和Embedded资源)-并将dist文件夹重命名为swagger-ui
所以我的根项目文件夹现在看起来像
然后我更改了Swagger配置以添加以下内容
c.CustomAsset("index", thisAssembly, "ReportsAPI.swagger-ui.Index.html");
对吗?我不确定从这里去哪里
我是否必须包括所有其他文件作为嵌入式资源?还是只是Index.html?我如何将其他文件标记为“内容”?总是复制吗?
答案 0 :(得分:1)
这里是一种替代方案,不需要您将任何内容嵌入到您的项目中:
如您所见,URL参数中提供了我的标准规范。
您可以使用该raw.githack.com
或将dist文件夹复制到更方便的位置。
现在我想指出的是,这是swagger-ui的非常旧的版本,看起来维护得不好,也许您应该看看: ReDoc https://github.com/Rebilly/ReDoc/blob/master/README.md