2015-07-26 11 views
14

Ich benutze Swashbuckle, um Swagger-Dokumentation zu meinem ASP.NET-Web-API-Projekt hinzuzufügen. Wie kann ich den Standardheader (mit dem Logo von swagger) von der Dokumentationsseite aus ausblenden, ohne CSS zu injizieren?Swagger (Swashbuckle) Header ausblenden

Antwort

7

Leider denke ich, Sie können es gerade jetzt mit Javascript tun.

In Ihrem SwaggerConfig.cs Sie eine Js-Datei wie folgt injizieren:

.EnableSwaggerUi(c => 
{       
    c.InjectJavaScript(thisAssembly, "yournamespace.yourscript.js"); 
}); 

Also in diesem Skript Sie, was Sie wollen tun, wie die Header verstecken:

document.querySelector("#header").style.display = "none"; 

Diese post zeigt, wie Sie die Kopfzeile anpassen, indem Sie zwei Textfelder darauf setzen.

10

Als ich injiziert JS wie oben vorgeschlagen, Header blinkt beim Laden der Seite. Es wurde für eine Sekunde angezeigt und dann per Skript deaktiviert. Es gibt Ansatz, der für mich besser funktioniert. https://github.com/domaindrivendev/Swashbuckle/issues/476

Sie CSS anstelle von JS injizieren:

#header { 
display:none; 
} 
+0

Ihr Ansatz ist besser, nur um das Menü zu verstecken :) – fabriciorissetto

1

Wenn ich mir css/js begann zuerst in diesen lief Injektion aber jedes Mal war es ein Kampf und Art „hackish“ Sachen zu verstecken mit injizierten css. Nach einer Weile habe ich einfach die Indexdatei durch eine modifizierte Version dieses index.html ersetzt. Sie können es ändern, wie Sie möchten. Durch das Entfernen des div mit der ID = header wird die Kopfzeile entfernt. Dies macht Dinge wie das Ersetzen des Logos usw. viel einfacher. Für den Logoteil könnten Sie das Logo src auf en 64-bit kodieren, wie hier gezeigt encode image. Auch das Entfernen des verknüpften Favicons auf der Registerkarte ist so einfach wie das Entfernen der Linie. Das Hinzufügen von Links zu anderen Seiten usw. ist trivial. Injizieren Sie den Index in Ihnen swaggerconfig als dies

c.CustomAsset("index", thisAssembly, "Path.To.index.html"); 

Denken Sie daran, Ihren Index auf eingebettete Ressource festlegen.