Контекст: преобразование Swagger из текущей документации REST в спецификации 1.2 в версию 2.0.
Среда: Java 8, swagger-maven-plugin 3.0.1, аннотации swagger (com.wordnik)
На чем я застрял: мне удалось успешно создать документацию REST API. Однако для REST API требуется ключ ApiKey в качестве параметра запроса. В спецификации 1.2 это было добавлено с помощью следующего фрагмента в index.html.
function addApiKeyAuthorization() {
var key = $('#input_apiKey')[0].value;
log("key: " + key);
if(key && key.trim() != "") {
log("added key " + key);
//window.authorizations.add("api_key", new ApiKeyAuthorization("api_key", key, "query"));
window.authorizations.add("apiKey", new ApiKeyAuthorization("apiKey", key, "header"));
}
}
$('#input_apiKey').change(function() {
addApiKeyAuthorization();
});
// if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
var apiKey = "ABCD";
$('#input_apiKey').val(apiKey);
addApiKeyAuthorization();
Однако для спецификации 2.0 мой поиск привел к следующим изменениям в файле yaml.
securityDefinitions:
UserSecurity:
type: apiKey
in: header
name:myApiKey
Текущий index.html имеет следующую оконную функцию:
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle({
url: "http://someCoolsite.com/swagger.json",
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
window.ui = ui
}