Snæ*_*ørn 5 swagger swagger-ui swashbuckle asp.net-core
我有一个ASP.NET Core 2.0 Web API,通过Swashbuckle在其中添加了Swagger。很好
我还在app.UseDeveloperExceptionPage()ASP.NET Core中启用了该选项。很好
但是他们在一起玩的不好。因为SwaggerUI只是将返回的HTML显示为文本。
对于GET请求,这不是一个大问题,因为我只是将URL粘贴到浏览器中。但是对于POST不起作用。所以我想知道是否有一种方法可以使SwaggerUI在Content-Type标头为时呈现html text/html。我一直找不到与此相关的任何东西,这有点令人困惑:)
来自 swagger 开发人员:
我们必须清理 HTML 以避免注入标签和启用 XSS 漏洞。所以,是的,原始 html 就是您应该看到的内容。
但是,您可以自行更改 swagger-ui.js(代码由 @nicksellen 提供):
--- swagger-ui.js 2015-09-19 20:58:10.000000000 +0200
+++ swagger-ui.js 2015-11-16 13:45:26.958266568 +0100
@@ -31855,9 +31855,10 @@
// HTML
} else if (contentType === 'text/html') {
- code = $('<code />').html(_.escape(content));
- pre = $('<pre class="xml" />').append(code);
-
+ var iframe = document.createElement('iframe');
+ iframe.srcdoc = content;
+ iframe.style = 'width: 100%; height: 500px;';
+ pre = iframe;
// Plain Text
} else if (/text\/plain/.test(contentType)) {
code = $('<code />').text(content);
Run Code Online (Sandbox Code Playgroud)
要使用 Swashbuckle 集成此更改:
由于 NuGet 不再管理此包,因此您需要定期检查 Swashbuckle 项目,并在需要更新时重复此过程。
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |