Używamy Swashbuckle do udokumentowania naszej api web i użycia jej do przetestowania naszego web apisa. Chcę wiedzieć, w jaki sposób można przekazać wiele niestandardowych nagłówków o różnych wartościach dla każdego żądania za pomocą interfejsu użytkownika Swagger.Jak przekazywać niestandardowe nagłówki podczas wywoływania interfejsu webowego za pomocą Swagger (Swashbuckle)
Widziałem odpowiedź podobną do poniższej w Internecie, aby przekazać nagłówek w interfejsie użytkownika Swagger, ale nie byłem w stanie jej zrozumieć. To, co jest mylące, dotyczy pliku SwaggerExtensions. Jaki jest cel tego pliku i dlaczego istnieje wzmianka o tym pliku w kwalifikowanej nazwie pliku js.
1. Dodaj nowy plik o nazwie "SwaggerExtensions", a następnie dodaj nowy plik JS o nazwie "onComplete.js", musisz zmienić akcję kompilacji dla tego pliku na "Embedded Resource".
2.Inside plik „onComplete.js” wklej następujący kod:
$('#input_apiKey').change(function() {
var key = $('#input_apiKey')[0].value;
if (key && key.trim() != "") {
key = "Bearer " + key;
window.authorizations.add("key", new ApiKeyAuthorization("Authorization", key, "header"));
}
});
3. Otwórz plik „i” SwaggerConfig.cs wewnątrz metody rejestru wklej poniższy kod:
SwaggerUiConfig.Customize(c =>
{
c.SupportHeaderParams = true;
c.InjectJavaScript(typeof(SwaggerConfig).Assembly, "AngularJSAuthentication.API.SwaggerExtensions.onComplete.js");
});
Ale chcę przekazać wartość nagłówka z UI (Swagger-UI). Jak przekazać wartość nagłówka? –
Dzięki @nimacks, to działało dla mnie. Chociaż z jakiegoś powodu moje parametry operation.parameters były zerowe, więc dodałem sprawdzanie, które zainicjuje je, jeśli jest puste przed dodaniem wymaganego parametru. – MaxJ