Per poter inviare intestazione di autorizzazione con una richiesta utilizzando Swagger UI avevo bisogno di:
Dato il nome del mio assembly è: My.Assembly e contiene una cartella: Swagger, dove ho messo il mio index.html personalizzato, ho aggiunto questa linea in SwaggerConfig.cs:
c.CustomAsset("index", thisAssembly, "My.Assembly.Swagger.index.html");
Nota che i carichi index.html javascript e file CSS. Ho dovuto cambiare tutti i punti per essere tratteggiato nei percorsi dei file in modo che quei file possano essere caricati. Non so il motivo per cui doveva essere fatto, ma risolto il problema del caricamento del file ...
Nel file index.html ho modificato il
addApiKeyAuthorization()
funzione per quella faccia:
function addApiKeyAuthorization() {
var key = encodeURIComponent($('#input_apiKey')[0].value);
if (key && key.trim() != "") {
var value = "auth-scheme api_key=123456,order_id=56789";
var authKeyHeader = new SwaggerClient.ApiKeyAuthorization("Authorization", value, "header");
window.swaggerUi.api.clientAuthorizations.add("Authorization", authKeyHeader);
}
}
Nota ho cambiato "query" a "header".
Ho anche senza commenti di questo codice:
var apiKey = "this field represents header but can be anything as long as its not empty";
$('#input_apiKey').val(apiKey);
che visualizzerà il testo nel secondo campo di testo, ma sembra non importa che cosa contiene finché non è vuoto.
Questo ha funzionato per me e mi ha consentito di caricare il file index.html personalizzato. Ora sto cercando di abilitare l'utente dell'interfaccia utente di Swagger per manipolare il valore dei parametri dell'intestazione ...
https://github.com/swagger-api/swagger-ui#custom-header-parameters---for-basic-auth-etc –
@AlbertoPellizzon - dove sarà Aggiungo quel codice? Quale file? – Marta
dopo l'inizializzazione di swaggerUi, provare a eseguire il servizio dove viene inizializzato, ad esempio var swaggerUi = new SwaggerUi ({}); –