Swagger(Swashbuckle)ヘッダーを非表示
Swashbuckleを使用して、ASP.NET WebAPIプロジェクトにSwaggerドキュメントを追加します。 CSSを挿入せずに、デフォルトのヘッダー(Swaggerロゴ付き)をドキュメントページから非表示にするにはどうすればよいですか?
残念ながら、今はjavascriptでそれを行うことができると思います。
SwaggerConfig.csで、次のような.jsファイルを挿入できます。
.EnableSwaggerUi(c =>
{
c.InjectJavaScript(thisAssembly, "yournamespace.yourscript.js");
});
したがって、このスクリプトでは、ヘッダーを非表示にするなど、好きなことを行うことができます。
document.querySelector("#header").style.display = "none";
この post は、ヘッダーに2つのテキストボックスを配置してヘッダーをカスタマイズする方法を示しています。
編集:
@dimaKudrの回答で提案されているアプローチの方が優れています。メニューを非表示にするには、CSSスタイルを挿入するだけで十分です(JSは必要ありません)。
上記のようにJSを挿入すると、ページの読み込み時にヘッダーが点滅していました。しばらく表示された後、スクリプトによって無効にされました。私にとってよりうまくいくアプローチがあります。 https://github.com/domaindrivendev/Swashbuckle/issues/476
JSの代わりにCSSを挿入できます。
#header {
display:none;
}
私が最初にこれに遭遇したとき、私はcss/jsを注入し始めましたが、毎回、注入されたcssでものを隠すのは苦労して一種の「ハック」でした。したがって、しばらくして、インデックスファイルをこの修正バージョンに置き換えただけです index.html 必要に応じて変更できます。 id = headerを使用してdivを削除すると、ヘッダーが削除されます。また、これにより、ロゴの置き換えなどがはるかに簡単になります。ロゴ部分については、ここに示すように、ロゴsrcをen 64ビットエンコードに設定できます encode image 。また、タブ内のリンクされたファビコンを削除するのは、行を削除するのと同じくらい簡単です。また、他のページなどへのリンクを追加するのは簡単です。このようにswaggerconfigにインデックスを挿入します
c.CustomAsset("index", thisAssembly, "Path.To.index.html");
インデックスを埋め込みリソースに設定することを忘れないでください。