2017-10-12 5 views
2

私はSwashbuckle経由でSwaggerを追加したASP.NET Core 2.0 Web APIを持っています。どちらがいいですか?app.UseDeveloperExceptionPage()のコンテンツをスワッガーでレンダリングできますか?

また、ASP.NETコアでapp.UseDeveloperExceptionPage()オプションが有効になっています。どちらがいいですか?

しかし、彼らは一緒に素敵な演奏をしません。 SwaggerUIは返されたHTMLをテキストとして表示するだけなので。

GETリクエストでは、URLをブラウザに貼り付けるだけで大​​きな問題はありません。しかし、POSTでは動作しません。 Content-Typeヘッダーがtext/htmlのときに、SwaggerUIにHTMLを表示させる方法があるかどうかは疑問でした。私が闊歩する開発者から:)

答えて

1

を不可解なビットである、これに関連する何かを見つけることができませんしてきた:

我々はタグを注入し、XSS 脆弱性を有効に回避するために、HTMLをきれいにする必要があります。だから、生のhtmlはあなたが見たいと思うものです。

しかし、あなたが闊歩-ui.jsに変更を自分で作ることができる

--- 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を使用して、この変更を統合するにはhttps://github.com/swagger-api/swagger-ui/issues/1748

でnicksellenが提供するコード:

  1. SwashbuckleをGitHubからダウンロードする
  2. swagger-u i.jsは、bower_components \ swagger-ui \ distフォルダのSwashbuckle.AspNetCore.SwaggerUIプロジェクトにあります。上記の編集を行い、コンパイルします。あなたのプロジェクトで
  3. 、Swashbuckle NuGetパッケージを削除し、NuGet以来2

もはやこのパッケージを管理している手順で作成したDLLへの参照を追加し、それが定期的にSwashbuckleプロジェクトをチェックするのはあなた次第となります更新が必要な場合は、このプロセスを繰り返します。

+0

ありがとうございました。今私はSwashbuckleとこれをどのように統合するかを理解する必要があります:) –

+0

Swashbuckleとの統合方法を含む編集済みの答え。 –

+0

あなたは男です:) –

関連する問題