gpt4 book ai didi

asp.net-core - Swagger可以渲染app.UseDeveloperExceptionPage()的内容吗?

转载 作者:行者123 更新时间:2023-12-02 09:14:22 25 4
gpt4 key购买 nike

我有一个 ASP.NET Core 2.0 Web API,我通过 Swashbuckle 添加了 Swagger。这很好。

我还在 ASP.NET Core 中启用了 app.UseDeveloperExceptionPage() 选项。这很好。

但他们在一起相处得并不愉快。因为 SwaggerUI 只是将返回的 HTML 显示为文本。

对于 GET 请求,这不是一个大问题,因为我只需将 URL 粘贴到浏览器中即可。但对于 POST 来说这是行不通的。所以我想知道是否有一种方法可以让 SwaggerUI 在 Content-Type header 为 text/html 时渲染 html。我一直找不到与此相关的任何内容,这有点令人费解:)

最佳答案

来自 Swagger 的开发人员:

We have to clean the HTML to avoid injecting tags and enabling XSS vulnerabilities. So yes, raw html is what you should expect to see.

但是,you can make the change yourself to 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);

要使用 Swashbuckle 集成此更改:

  1. GitHub 下载 Swashbuckle
  2. swagger-ui.js 位于 Bower_components\swagger-ui\dist 文件夹中的 Swashbuckle.AspNetCore.SwaggerUI 项目中。进行上述编辑并编译。
  3. 在您的项目中,删除 Swashbuckle NuGet 软件包并添加对第 2 步中创建的 DLL 的引用。

由于 NuGet 不再管理此包,因此您需要定期检查 Swashbuckle 项目,并在需要更新时重复此过程。

关于asp.net-core - Swagger可以渲染app.UseDeveloperExceptionPage()的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com