2015-07-26 12 views
14

Używam Swashbuckle do dodawania dokumentacji Swagger do mojego projektu ASP.NET Web API. Jak ukryć domyślny nagłówek (z logo swagger) na stronie z dokumentacją bez wstrzykiwania CSS?Swagger (Swashbuckle) hide header

Odpowiedz

7

Niestety, myślę, że możesz teraz zrobić to za pomocą javascript.

W swoim SwaggerConfig.cs można wstrzyknąć pliku js tak:

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

Więc w tym scenariuszu można robić, co chcesz, jak ukryć nagłówek:

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

Ten post pokazuje, jak dostosować nagłówek, umieszczając na nim dwa pola tekstowe.

10

Po wstrzyknięciu JS, jak zasugerowano powyżej, nagłówek migał podczas ładowania strony. Pokazano go na sekundę, a następnie został wyłączony przez skrypt. Jest podejście, które działa lepiej dla mnie. https://github.com/domaindrivendev/Swashbuckle/issues/476

można wstrzykiwać CSS zamiast JS:

#header { 
display:none; 
} 
+0

Twoje podejście jest lepsze, wystarczy ukryć menu :) – fabriciorissetto

1

Kiedy po raz pierwszy wpadł na ten zacząłem wstrzykiwanie css/js, ale za każdym razem była to walka i rodzaj „hackish”, aby ukryć rzeczy z wstrzykiwany css. Po chwili po prostu zmieniłem plik indeksu na zmodyfikowaną wersję tego index.html Możesz modyfikować, jak chcesz. Usunięcie elementu div za pomocą id = header spowoduje usunięcie nagłówka. Dzięki temu rzeczy takie jak zastąpienie logo itp. Są znacznie prostsze. W przypadku części z logo można ustawić logo src na kodowanie 64-bitowe, jak pokazano tutaj: encode image. Usunięcie połączonego favicon w zakładce jest równie proste jak usunięcie linii. Dodanie linków do innych stron itp. Jest banalne. Injecting the index in you swaggerconfig as Pamiętaj, aby ustawić indeks na zasób osadzony.