Compare commits

...
14 Commits
Author SHA1 Message Date
Tony Tam 6b400b22fe updated version 2014-01-23 20:40:40 -08:00
Tony Tam c22d94b940 updated swagger-js client, support for IE8 2014-01-23 20:40:10 -08:00
Tony Tam e7b9525911 updated swagger-js version to address #377, #72 2014-01-21 18:31:26 -08:00
Tony Tam ede80844a5 Merge pull request #376 from ilesm/mediatypes2
Added support for pretty-printing responses that use extended media type subtypes
2014-01-19 15:53:39 -08:00
Michael Iles eea0d72a85 Added support for pretty-printing responses for media types with
extended subtypes. For example the media type
'application/vnd.myresource+json; version=1.2' will be correctly
recognized as JSON and pretty-printed. Conforms to RFC 6838, 6839.
2014-01-19 14:46:55 -05:00
Tony Tam 15acb15af6 fix for #248 2014-01-02 19:54:10 -08:00
Tony Tam 54d0a8ec09 Update README.md 2014-01-02 09:28:35 -08:00
Tony Tam 105c516f5f Merge pull request #365 from xinvincible21/master
safe-JSON-parsing-check-for-type-undefined
2013-12-29 05:44:43 -08:00
invincible 542d4fe478 safe-JSON-parsing-check-for-type-undefined 2013-12-27 13:51:50 -05:00
Tony Tam 97e96ba3d9 rebuilt client 2013-12-20 17:37:55 -08:00
Tony Tam 73eaf9f564 Merge pull request #364 from bmatsuo/dont-upload-all-files
restrict uploaded file inputs to those in the form being submitted
2013-12-20 17:36:26 -08:00
Bryan Matsuo fc0ccd4486 restrict uploaded file inputs to those in the form being submitted 2013-12-20 17:17:06 -08:00
Tony Tam 7f68c35742 Merge pull request #358 from autayeu/selfclosingtag
removed selfclosing tag #332 - reapplied e4d01c5 by thadudexx
2013-12-19 12:02:29 -08:00
Aliaksandr Autayeu dc1bc43a19 removed selfclosing tag #332 - reapplied e4d01c5 by thadudexx 2013-12-14 16:13:06 +01:00
11 changed files with 526 additions and 168 deletions
+2
View File
@@ -92,6 +92,8 @@ Create your own fork of [wordnik/swagger-ui](https://github.com/wordnik/swagger-
To share your changes, [submit a pull request](https://github.com/wordnik/swagger-ui/pull/new/master).
Since the javascript files are compiled from coffeescript, please submit changes in the *.coffee files! We have to reject changes only in the .js files as they will be lost on each build of the ui.
License
-------
+6 -11
View File
@@ -2,10 +2,10 @@
<html>
<head>
<title>Swagger UI</title>
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='css/highlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<script type="text/javascript" src="lib/shred.bundle.js" /></script>
<script type="text/javascript" src="lib/shred.bundle.js"></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
@@ -23,25 +23,20 @@
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
if(console) {
console.log("Loaded SwaggerUI")
}
log("Loaded SwaggerUI")
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
},
onFailure: function(data) {
if(console) {
console.log("Unable to Load SwaggerUI");
console.log(data);
}
log("Unable to Load SwaggerUI");
},
docExpansion: "none"
});
$('#input_apiKey').change(function() {
var key = $('#input_apiKey')[0].value;
console.log("key: " + key);
log("key: " + key);
if(key && key.trim() != "") {
console.log("added key " + key);
log("added key " + key);
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
}
})
+231 -48
View File
@@ -1,7 +1,8 @@
// Generated by CoffeeScript 1.6.3
(function() {
var ApiKeyAuthorization, PasswordAuthorization, SwaggerApi, SwaggerAuthorizations, SwaggerHttp, SwaggerModel, SwaggerModelProperty, SwaggerOperation, SwaggerRequest, SwaggerResource,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
SwaggerApi = (function() {
SwaggerApi.prototype.url = "http://api.wordnik.com/v4/resources.json";
@@ -16,6 +17,8 @@
SwaggerApi.prototype.info = null;
SwaggerApi.prototype.useJQuery = null;
function SwaggerApi(url, options) {
if (options == null) {
options = {};
@@ -47,6 +50,7 @@
_this = this;
this.progress('fetching resource list: ' + this.url);
obj = {
useJQuery: this.useJQuery,
url: this.url,
method: "get",
headers: {},
@@ -62,14 +66,14 @@
return _this.fail(response.status + ' : ' + response.statusText + ' ' + _this.url);
}
},
response: function(rawResponse) {
var response;
response = JSON.parse(rawResponse.content.data);
_this.swaggerVersion = response.swaggerVersion;
response: function(response) {
var responseObj;
responseObj = JSON.parse(response.data);
_this.swaggerVersion = responseObj.swaggerVersion;
if (_this.swaggerVersion === "1.2") {
return _this.buildFromSpec(response);
return _this.buildFromSpec(responseObj);
} else {
return _this.buildFrom1_1Spec(response);
return _this.buildFrom1_1Spec(responseObj);
}
}
}
@@ -139,7 +143,7 @@
SwaggerApi.prototype.buildFrom1_1Spec = function(response) {
var api, isApi, newName, operation, res, resource, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
console.log("This API is using a deprecated version of Swagger! Please see http://github.com/wordnik/swagger-core/wiki for more info");
log("This API is using a deprecated version of Swagger! Please see http://github.com/wordnik/swagger-core/wiki for more info");
if (response.apiVersion != null) {
this.apiVersion = response.apiVersion;
}
@@ -241,15 +245,15 @@
_ref = this.apis;
for (resource_name in _ref) {
resource = _ref[resource_name];
console.log(resource_name);
log(resource_name);
_ref1 = resource.operations;
for (operation_name in _ref1) {
operation = _ref1[operation_name];
console.log(" " + operation.nickname);
log(" " + operation.nickname);
_ref2 = operation.parameters;
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
parameter = _ref2[_i];
console.log(" " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
log(" " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
}
}
}
@@ -283,6 +287,7 @@
this.operationsArray = [];
this.modelsArray = [];
this.models = {};
this.rawModels = {};
if ((resourceObj.apis != null) && (this.api.resourcePath != null)) {
this.addApiDeclaration(resourceObj);
} else {
@@ -298,15 +303,16 @@
obj = {
url: this.url,
method: "get",
useJQuery: this.useJQuery,
headers: {},
on: {
error: function(response) {
return _this.api.fail("Unable to read api '" + _this.name + "' from path " + _this.url + " (server returned " + response.statusText + ")");
},
response: function(rawResponse) {
var response;
response = JSON.parse(rawResponse.content.data);
return _this.addApiDeclaration(response);
response: function(response) {
var responseObj;
responseObj = JSON.parse(response.data);
return _this.addApiDeclaration(responseObj);
}
}
};
@@ -321,6 +327,25 @@
}
}
SwaggerResource.prototype.getAbsoluteBasePath = function(relativeBasePath) {
var parts, pos, url;
url = this.api.basePath;
pos = url.lastIndexOf(relativeBasePath);
if (pos === -1) {
parts = url.split("/");
url = parts[0] + "//" + parts[2];
if (relativeBasePath.indexOf("/") === 0) {
return url + relativeBasePath;
} else {
return url + "/" + relativeBasePath;
}
} else if (relativeBasePath === "/") {
return url.substring(0, pos);
} else {
return url.substring(0, pos) + relativeBasePath;
}
};
SwaggerResource.prototype.addApiDeclaration = function(response) {
var endpoint, _i, _len, _ref;
if (response.produces != null) {
@@ -330,7 +355,7 @@
this.consumes = response.consumes;
}
if ((response.basePath != null) && response.basePath.replace(/\s/g, '').length > 0) {
this.basePath = response.basePath;
this.basePath = response.basePath.indexOf("http") === -1 ? this.getAbsoluteBasePath(response.basePath) : response.basePath;
}
this.addModels(response.models);
if (response.apis) {
@@ -353,6 +378,7 @@
swaggerModel = new SwaggerModel(modelName, models[modelName]);
this.modelsArray.push(swaggerModel);
this.models[modelName] = swaggerModel;
this.rawModels[modelName] = models[modelName];
}
}
_ref = this.modelsArray;
@@ -408,7 +434,7 @@
}
}
o.nickname = this.sanitize(o.nickname);
op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces);
op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces, o.authorizations);
this.operations[op.nickname] = op;
_results.push(this.operationsArray.push(op));
}
@@ -503,7 +529,7 @@
_ref1 = this.properties;
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
prop = _ref1[_j];
if ((prop.refModel != null) && (modelsToIgnore.indexOf(prop.refModel)) === -1) {
if ((prop.refModel != null) && (modelsToIgnore[prop.refModel] !== 'undefined') === -1) {
returnVal = returnVal + ('<br>' + prop.refModel.getMockSignature(modelsToIgnore));
}
}
@@ -562,7 +588,7 @@
SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
var result;
if ((this.refModel != null) && (modelsToIgnore.indexOf(this.refModel.name) === -1)) {
if ((this.refModel != null) && (modelsToIgnore[this.refModel.name] === 'undefined')) {
result = this.refModel.createJSONSample(modelsToIgnore);
} else {
if (this.isCollection) {
@@ -600,7 +626,7 @@
})();
SwaggerOperation = (function() {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces) {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces, authorizations) {
var parameter, v, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3,
_this = this;
this.nickname = nickname;
@@ -614,6 +640,7 @@
this.resource = resource;
this.consumes = consumes;
this.produces = produces;
this.authorizations = authorizations;
this["do"] = __bind(this["do"], this);
if (this.nickname == null) {
this.resource.api.fail("SwaggerOperations must have a nickname.");
@@ -656,12 +683,12 @@
v = _ref2[_j];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,
value: String(v),
isDefault: true
});
} else {
parameter.allowableValues.descriptiveValues.push({
value: v,
value: String(v),
isDefault: false
});
}
@@ -756,19 +783,19 @@
}
if (error == null) {
error = function(xhr, textStatus, error) {
return console.log(xhr, textStatus, error);
return log(xhr, textStatus, error);
};
}
if (callback == null) {
callback = function(data) {
callback = function(response) {
var content;
content = null;
if (data.content != null) {
content = data.content.data;
if (response != null) {
content = response.data;
} else {
content = "no data";
}
return console.log("default callback: " + content);
return log("default callback: " + content);
};
}
params = {};
@@ -915,7 +942,7 @@
SwaggerRequest = (function() {
function SwaggerRequest(type, url, params, opts, successCallback, errorCallback, operation, execution) {
var body, e, fields, headers, key, myHeaders, name, obj, param, parent, possibleParams, requestContentType, responseContentType, urlEncoded, value, values,
var body, e, fields, headers, key, myHeaders, name, obj, param, parent, possibleParams, requestContentType, responseContentType, status, urlEncoded, value, values,
_this = this;
this.type = type;
this.url = url;
@@ -985,8 +1012,8 @@
}
}
if (requestContentType && this.operation.consumes) {
if (this.operation.consumes.indexOf(requestContentType) === -1) {
console.log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
if (this.operation.consumes[requestContentType] === 'undefined') {
log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
if (this.requestContentType === null) {
requestContentType = this.operation.consumes[0];
}
@@ -1003,8 +1030,8 @@
responseContentType = null;
}
if (responseContentType && this.operation.produces) {
if (this.operation.produces.indexOf(responseContentType) === -1) {
console.log("server can't produce " + responseContentType);
if (this.operation.produces[responseContentType] === 'undefined') {
log("server can't produce " + responseContentType);
}
}
if (requestContentType && requestContentType.indexOf("application/x-www-form-urlencoded") === 0) {
@@ -1053,6 +1080,7 @@
method: this.type,
headers: myHeaders,
body: body,
useJQuery: this.useJQuery,
on: {
error: function(response) {
return _this.errorCallback(response, _this.opts.parent);
@@ -1074,11 +1102,14 @@
} else {
e = exports;
}
e.authorizations.apply(obj);
status = e.authorizations.apply(obj, this.operation.authorizations);
if (opts.mock == null) {
new SwaggerHttp().execute(obj);
if (status !== false) {
new SwaggerHttp().execute(obj);
} else {
obj.canceled = true;
}
} else {
console.log(obj);
return obj;
}
}
@@ -1104,13 +1135,15 @@
})();
SwaggerHttp = (function() {
function SwaggerHttp() {}
SwaggerHttp.prototype.Shred = null;
SwaggerHttp.prototype.shred = null;
SwaggerHttp.prototype.content = null;
function SwaggerHttp() {
SwaggerHttp.prototype.initShred = function() {
var identity, toString,
_this = this;
if (typeof window !== 'undefined') {
@@ -1127,22 +1160,147 @@
};
if (typeof window !== 'undefined') {
this.content = require("./shred/content");
this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
return this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
parser: identity,
stringify: toString
});
} else {
this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
return this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
parser: identity,
stringify: toString
});
}
}
};
SwaggerHttp.prototype.execute = function(obj) {
if (this.isIE() || obj.useJQuery) {
return this.executeWithJQuery(obj);
} else {
return this.executeWithShred(obj);
}
};
SwaggerHttp.prototype.executeWithShred = function(obj) {
var cb, res,
_this = this;
if (!this.Shred) {
this.initShred();
}
cb = obj.on;
res = {
error: function(response) {
if (obj) {
return cb.error(response);
}
},
redirect: function(response) {
if (obj) {
return cb.redirect(response);
}
},
307: function(response) {
if (obj) {
return cb.redirect(response);
}
},
response: function(raw) {
var headers, out;
if (obj) {
headers = raw._headers;
out = {
headers: headers,
url: raw.request.url,
method: raw.request.method,
status: raw.status,
data: raw.content.data
};
return cb.response(out);
}
}
};
if (obj) {
obj.on = res;
}
return this.shred.request(obj);
};
SwaggerHttp.prototype.executeWithJQuery = function(obj) {
var beforeSend, cb, request,
_this = this;
cb = obj.on;
request = obj;
obj.type = obj.method;
obj.cache = false;
beforeSend = function(xhr) {
var key, _results;
if (obj.headers) {
_results = [];
for (key in obj.headers) {
if (key.toLowerCase() === "content-type") {
_results.push(obj.contentType = obj.headers[key]);
} else if (key.toLowerCase() === "accept") {
_results.push(obj.accepts = obj.headers[key]);
} else {
_results.push(xhr.setRequestHeader(key, obj.headers[key]));
}
}
return _results;
}
};
obj.beforeSend = beforeSend;
obj.data = obj.body;
obj.complete = function(response, textStatus, opts) {
var headerArray, headers, i, out, _i, _j, _k, _ref, _ref1, _ref2, _ref3, _results, _results1;
headers = {};
headerArray = response.getAllResponseHeaders().split(":");
for (i = _i = 0, _ref = headerArray.length / 2, _ref1 = 2.; _ref1 > 0 ? _i <= _ref : _i >= _ref; i = _i += _ref1) {
headers[headerArray[i]] = headerArray[i + 1];
}
out = {
headers: headers,
url: request.url,
method: request.method,
status: response.status,
data: response.responseText,
headers: headers
};
if (_ref2 = response.status, __indexOf.call((function() {
_results = [];
for (_j = 200; _j <= 299; _j++){ _results.push(_j); }
return _results;
}).apply(this), _ref2) >= 0) {
cb.response(out);
}
if ((_ref3 = response.status, __indexOf.call((function() {
_results1 = [];
for (_k = 400; _k <= 599; _k++){ _results1.push(_k); }
return _results1;
}).apply(this), _ref3) >= 0) || response.status === 0) {
cb.error(out);
}
return cb.response(out);
};
$.support.cors = true;
return $.ajax(obj);
};
SwaggerHttp.prototype.isIE = function() {
var isIE, nav, version;
({
isIE: false
});
if (typeof navigator !== 'undefined' && navigator.userAgent) {
nav = navigator.userAgent.toLowerCase();
if (nav.indexOf('msie') !== -1) {
version = parseInt(nav.split('msie')[1]);
if (version <= 8) {
isIE = true;
}
}
}
return isIE;
};
return SwaggerHttp;
})();
@@ -1159,15 +1317,25 @@
return auth;
};
SwaggerAuthorizations.prototype.apply = function(obj) {
var key, value, _ref, _results;
SwaggerAuthorizations.prototype.remove = function(name) {
return delete this.authz[name];
};
SwaggerAuthorizations.prototype.apply = function(obj, authorizations) {
var key, result, status, value, _ref;
status = null;
_ref = this.authz;
_results = [];
for (key in _ref) {
value = _ref[key];
_results.push(value.apply(obj));
result = value.apply(obj, authorizations);
if (result === false) {
status = false;
}
if (result === true) {
status = true;
}
}
return _results;
return status;
};
return SwaggerAuthorizations;
@@ -1187,7 +1355,7 @@
this.type = type;
}
ApiKeyAuthorization.prototype.apply = function(obj) {
ApiKeyAuthorization.prototype.apply = function(obj, authorizations) {
if (this.type === "query") {
if (obj.url.indexOf('?') > 0) {
obj.url = obj.url + "&" + this.name + "=" + this.value;
@@ -1196,7 +1364,8 @@
}
return true;
} else if (this.type === "header") {
return obj.headers[this.name] = this.value;
obj.headers[this.name] = this.value;
return true;
}
};
@@ -1205,6 +1374,8 @@
})();
PasswordAuthorization = (function() {
PasswordAuthorization._btoa = null;
PasswordAuthorization.prototype.name = null;
PasswordAuthorization.prototype.username = null;
@@ -1215,10 +1386,20 @@
this.name = name;
this.username = username;
this.password = password;
PasswordAuthorization._ensureBtoa();
}
PasswordAuthorization.prototype.apply = function(obj) {
return obj.headers["Authorization"] = "Basic " + btoa(this.username + ":" + this.password);
PasswordAuthorization.prototype.apply = function(obj, authorizations) {
obj.headers["Authorization"] = "Basic " + PasswordAuthorization._btoa(this.username + ":" + this.password);
return true;
};
PasswordAuthorization._ensureBtoa = function() {
if (typeof window !== 'undefined') {
return this._btoa = btoa;
} else {
return this._btoa = require("btoa");
}
};
return PasswordAuthorization;
@@ -1239,6 +1420,8 @@
this.PasswordAuthorization = PasswordAuthorization;
this.SwaggerHttp = SwaggerHttp;
this.authorizations = new SwaggerAuthorizations();
}).call(this);
+26 -25
View File
@@ -1282,7 +1282,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
SwaggerUi.prototype.buildUrl = function(base, url) {
var parts;
console.log("base is " + base);
log("base is " + base);
parts = base.split("/");
base = parts[0] + "//" + parts[2];
if (url.indexOf("/") === 0) {
@@ -1435,7 +1435,6 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
ResourceView.prototype.render = function() {
var operation, _i, _len, _ref4;
console.log(this.model.description);
$(this.el).html(Handlebars.templates.resource(this.model));
this.number = 0;
_ref4 = this.model.operationsArray;
@@ -1513,7 +1512,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
type = param.type || param.dataType;
if (type.toLowerCase() === 'file') {
if (!contentTypeModel.consumes) {
console.log("set content type ");
log("set content type ");
contentTypeModel.consumes = 'multipart/form-data';
}
}
@@ -1622,9 +1621,9 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
};
OperationView.prototype.handleFileUpload = function(map, form) {
var bodyParam, headerParams, o, obj, param, _i, _j, _k, _len, _len1, _len2, _ref5, _ref6, _ref7,
var bodyParam, el, headerParams, o, obj, param, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref5, _ref6, _ref7, _ref8,
_this = this;
console.log("it's a file upload");
log("it's a file upload");
_ref5 = form.serializeArray();
for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
o = _ref5[_i];
@@ -1648,11 +1647,13 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
headerParams[param.name] = map[param.name];
}
}
console.log(headerParams);
$.each($('input[type~="file"]'), function(i, el) {
return bodyParam.append($(el).attr('name'), el.files[0]);
});
console.log(bodyParam);
log(headerParams);
_ref8 = form.find('input[type~="file"]');
for (_l = 0, _len3 = _ref8.length; _l < _len3; _l++) {
el = _ref8[_l];
bodyParam.append($(el).attr('name'), el.files[0]);
}
log(bodyParam);
this.invocationUrl = this.model.supportHeaderParams() ? (headerParams = this.model.getHeaderParams(map), this.model.urlify(map, false)) : this.model.urlify(map, true);
$(".request_url", $(this.el)).html("<pre>" + this.invocationUrl + "</pre>");
obj = {
@@ -1688,7 +1689,7 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
o.content.data = data.responseText;
o.getHeaders = function() {
return {
"Content-Type": data.getResponseHeader("Content-Type")
"Content-Type": data.headers("Content-Type")
};
};
o.request = {};
@@ -1813,34 +1814,34 @@ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
return formatted;
};
OperationView.prototype.showStatus = function(data) {
OperationView.prototype.showStatus = function(response) {
var code, content, contentType, headers, pre, response_body;
content = data.content.data;
headers = data.getHeaders();
contentType = headers["Content-Type"];
if (content === void 0) {
content = response.data;
headers = response.headers;
contentType = headers["Content-Type"] ? headers["Content-Type"].split(";")[0].trim() : null;
if (!content) {
code = $('<code />').text("no content");
pre = $('<pre class="json" />').append(code);
} else if (contentType.indexOf("application/json") === 0 || contentType.indexOf("application/hal+json") === 0) {
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, 2));
} else if (contentType === "application/json" || /\+json$/.test(contentType)) {
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, " "));
pre = $('<pre class="json" />').append(code);
} else if (contentType.indexOf("application/xml") === 0) {
} else if (contentType === "application/xml" || /\+xml$/.test(contentType)) {
code = $('<code />').text(this.formatXml(content));
pre = $('<pre class="xml" />').append(code);
} else if (contentType.indexOf("text/html") === 0) {
} else if (contentType === "text/html") {
code = $('<code />').html(content);
pre = $('<pre class="xml" />').append(code);
} else if (contentType.indexOf("image/") === 0) {
pre = $('<img>').attr('src', data.request.url);
} else if (/^image\//.test(contentType)) {
pre = $('<img>').attr('src', response.url);
} else {
code = $('<code />').text(content);
pre = $('<pre class="json" />').append(code);
}
response_body = pre;
$(".request_url", $(this.el)).html("<pre>" + data.request.url + "</pre>");
$(".response_code", $(this.el)).html("<pre>" + data.status + "</pre>");
$(".request_url", $(this.el)).html("<pre>" + response.url + "</pre>");
$(".response_code", $(this.el)).html("<pre>" + response.status + "</pre>");
$(".response_body", $(this.el)).html(response_body);
$(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(data.getHeaders(), null, " ").replace(/\n/g, "<br>") + "</pre>");
$(".response_headers", $(this.el)).html("<pre>" + JSON.stringify(response.headers, null, " ").replace(/\n/g, "<br>") + "</pre>");
$(".response", $(this.el)).slideDown();
$(".response_hider", $(this.el)).show();
$(".response_throbber", $(this.el)).hide();
+1 -1
View File
File diff suppressed because one or more lines are too long
+231 -48
View File
@@ -1,7 +1,8 @@
// Generated by CoffeeScript 1.6.3
(function() {
var ApiKeyAuthorization, PasswordAuthorization, SwaggerApi, SwaggerAuthorizations, SwaggerHttp, SwaggerModel, SwaggerModelProperty, SwaggerOperation, SwaggerRequest, SwaggerResource,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
SwaggerApi = (function() {
SwaggerApi.prototype.url = "http://api.wordnik.com/v4/resources.json";
@@ -16,6 +17,8 @@
SwaggerApi.prototype.info = null;
SwaggerApi.prototype.useJQuery = null;
function SwaggerApi(url, options) {
if (options == null) {
options = {};
@@ -47,6 +50,7 @@
_this = this;
this.progress('fetching resource list: ' + this.url);
obj = {
useJQuery: this.useJQuery,
url: this.url,
method: "get",
headers: {},
@@ -62,14 +66,14 @@
return _this.fail(response.status + ' : ' + response.statusText + ' ' + _this.url);
}
},
response: function(rawResponse) {
var response;
response = JSON.parse(rawResponse.content.data);
_this.swaggerVersion = response.swaggerVersion;
response: function(response) {
var responseObj;
responseObj = JSON.parse(response.data);
_this.swaggerVersion = responseObj.swaggerVersion;
if (_this.swaggerVersion === "1.2") {
return _this.buildFromSpec(response);
return _this.buildFromSpec(responseObj);
} else {
return _this.buildFrom1_1Spec(response);
return _this.buildFrom1_1Spec(responseObj);
}
}
}
@@ -139,7 +143,7 @@
SwaggerApi.prototype.buildFrom1_1Spec = function(response) {
var api, isApi, newName, operation, res, resource, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
console.log("This API is using a deprecated version of Swagger! Please see http://github.com/wordnik/swagger-core/wiki for more info");
log("This API is using a deprecated version of Swagger! Please see http://github.com/wordnik/swagger-core/wiki for more info");
if (response.apiVersion != null) {
this.apiVersion = response.apiVersion;
}
@@ -241,15 +245,15 @@
_ref = this.apis;
for (resource_name in _ref) {
resource = _ref[resource_name];
console.log(resource_name);
log(resource_name);
_ref1 = resource.operations;
for (operation_name in _ref1) {
operation = _ref1[operation_name];
console.log(" " + operation.nickname);
log(" " + operation.nickname);
_ref2 = operation.parameters;
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
parameter = _ref2[_i];
console.log(" " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
log(" " + parameter.name + (parameter.required ? ' (required)' : '') + " - " + parameter.description);
}
}
}
@@ -283,6 +287,7 @@
this.operationsArray = [];
this.modelsArray = [];
this.models = {};
this.rawModels = {};
if ((resourceObj.apis != null) && (this.api.resourcePath != null)) {
this.addApiDeclaration(resourceObj);
} else {
@@ -298,15 +303,16 @@
obj = {
url: this.url,
method: "get",
useJQuery: this.useJQuery,
headers: {},
on: {
error: function(response) {
return _this.api.fail("Unable to read api '" + _this.name + "' from path " + _this.url + " (server returned " + response.statusText + ")");
},
response: function(rawResponse) {
var response;
response = JSON.parse(rawResponse.content.data);
return _this.addApiDeclaration(response);
response: function(response) {
var responseObj;
responseObj = JSON.parse(response.data);
return _this.addApiDeclaration(responseObj);
}
}
};
@@ -321,6 +327,25 @@
}
}
SwaggerResource.prototype.getAbsoluteBasePath = function(relativeBasePath) {
var parts, pos, url;
url = this.api.basePath;
pos = url.lastIndexOf(relativeBasePath);
if (pos === -1) {
parts = url.split("/");
url = parts[0] + "//" + parts[2];
if (relativeBasePath.indexOf("/") === 0) {
return url + relativeBasePath;
} else {
return url + "/" + relativeBasePath;
}
} else if (relativeBasePath === "/") {
return url.substring(0, pos);
} else {
return url.substring(0, pos) + relativeBasePath;
}
};
SwaggerResource.prototype.addApiDeclaration = function(response) {
var endpoint, _i, _len, _ref;
if (response.produces != null) {
@@ -330,7 +355,7 @@
this.consumes = response.consumes;
}
if ((response.basePath != null) && response.basePath.replace(/\s/g, '').length > 0) {
this.basePath = response.basePath;
this.basePath = response.basePath.indexOf("http") === -1 ? this.getAbsoluteBasePath(response.basePath) : response.basePath;
}
this.addModels(response.models);
if (response.apis) {
@@ -353,6 +378,7 @@
swaggerModel = new SwaggerModel(modelName, models[modelName]);
this.modelsArray.push(swaggerModel);
this.models[modelName] = swaggerModel;
this.rawModels[modelName] = models[modelName];
}
}
_ref = this.modelsArray;
@@ -408,7 +434,7 @@
}
}
o.nickname = this.sanitize(o.nickname);
op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces);
op = new SwaggerOperation(o.nickname, resource_path, method, o.parameters, o.summary, o.notes, type, responseMessages, this, consumes, produces, o.authorizations);
this.operations[op.nickname] = op;
_results.push(this.operationsArray.push(op));
}
@@ -503,7 +529,7 @@
_ref1 = this.properties;
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
prop = _ref1[_j];
if ((prop.refModel != null) && (modelsToIgnore.indexOf(prop.refModel)) === -1) {
if ((prop.refModel != null) && (modelsToIgnore[prop.refModel] !== 'undefined') === -1) {
returnVal = returnVal + ('<br>' + prop.refModel.getMockSignature(modelsToIgnore));
}
}
@@ -562,7 +588,7 @@
SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) {
var result;
if ((this.refModel != null) && (modelsToIgnore.indexOf(this.refModel.name) === -1)) {
if ((this.refModel != null) && (modelsToIgnore[this.refModel.name] === 'undefined')) {
result = this.refModel.createJSONSample(modelsToIgnore);
} else {
if (this.isCollection) {
@@ -600,7 +626,7 @@
})();
SwaggerOperation = (function() {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces) {
function SwaggerOperation(nickname, path, method, parameters, summary, notes, type, responseMessages, resource, consumes, produces, authorizations) {
var parameter, v, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3,
_this = this;
this.nickname = nickname;
@@ -614,6 +640,7 @@
this.resource = resource;
this.consumes = consumes;
this.produces = produces;
this.authorizations = authorizations;
this["do"] = __bind(this["do"], this);
if (this.nickname == null) {
this.resource.api.fail("SwaggerOperations must have a nickname.");
@@ -656,12 +683,12 @@
v = _ref2[_j];
if ((parameter.defaultValue != null) && parameter.defaultValue === v) {
parameter.allowableValues.descriptiveValues.push({
value: v,
value: String(v),
isDefault: true
});
} else {
parameter.allowableValues.descriptiveValues.push({
value: v,
value: String(v),
isDefault: false
});
}
@@ -756,19 +783,19 @@
}
if (error == null) {
error = function(xhr, textStatus, error) {
return console.log(xhr, textStatus, error);
return log(xhr, textStatus, error);
};
}
if (callback == null) {
callback = function(data) {
callback = function(response) {
var content;
content = null;
if (data.content != null) {
content = data.content.data;
if (response != null) {
content = response.data;
} else {
content = "no data";
}
return console.log("default callback: " + content);
return log("default callback: " + content);
};
}
params = {};
@@ -915,7 +942,7 @@
SwaggerRequest = (function() {
function SwaggerRequest(type, url, params, opts, successCallback, errorCallback, operation, execution) {
var body, e, fields, headers, key, myHeaders, name, obj, param, parent, possibleParams, requestContentType, responseContentType, urlEncoded, value, values,
var body, e, fields, headers, key, myHeaders, name, obj, param, parent, possibleParams, requestContentType, responseContentType, status, urlEncoded, value, values,
_this = this;
this.type = type;
this.url = url;
@@ -985,8 +1012,8 @@
}
}
if (requestContentType && this.operation.consumes) {
if (this.operation.consumes.indexOf(requestContentType) === -1) {
console.log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
if (this.operation.consumes[requestContentType] === 'undefined') {
log("server doesn't consume " + requestContentType + ", try " + JSON.stringify(this.operation.consumes));
if (this.requestContentType === null) {
requestContentType = this.operation.consumes[0];
}
@@ -1003,8 +1030,8 @@
responseContentType = null;
}
if (responseContentType && this.operation.produces) {
if (this.operation.produces.indexOf(responseContentType) === -1) {
console.log("server can't produce " + responseContentType);
if (this.operation.produces[responseContentType] === 'undefined') {
log("server can't produce " + responseContentType);
}
}
if (requestContentType && requestContentType.indexOf("application/x-www-form-urlencoded") === 0) {
@@ -1053,6 +1080,7 @@
method: this.type,
headers: myHeaders,
body: body,
useJQuery: this.useJQuery,
on: {
error: function(response) {
return _this.errorCallback(response, _this.opts.parent);
@@ -1074,11 +1102,14 @@
} else {
e = exports;
}
e.authorizations.apply(obj);
status = e.authorizations.apply(obj, this.operation.authorizations);
if (opts.mock == null) {
new SwaggerHttp().execute(obj);
if (status !== false) {
new SwaggerHttp().execute(obj);
} else {
obj.canceled = true;
}
} else {
console.log(obj);
return obj;
}
}
@@ -1104,13 +1135,15 @@
})();
SwaggerHttp = (function() {
function SwaggerHttp() {}
SwaggerHttp.prototype.Shred = null;
SwaggerHttp.prototype.shred = null;
SwaggerHttp.prototype.content = null;
function SwaggerHttp() {
SwaggerHttp.prototype.initShred = function() {
var identity, toString,
_this = this;
if (typeof window !== 'undefined') {
@@ -1127,22 +1160,147 @@
};
if (typeof window !== 'undefined') {
this.content = require("./shred/content");
this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
return this.content.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
parser: identity,
stringify: toString
});
} else {
this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
return this.Shred.registerProcessor(["application/json; charset=utf-8", "application/json", "json"], {
parser: identity,
stringify: toString
});
}
}
};
SwaggerHttp.prototype.execute = function(obj) {
if (this.isIE() || obj.useJQuery) {
return this.executeWithJQuery(obj);
} else {
return this.executeWithShred(obj);
}
};
SwaggerHttp.prototype.executeWithShred = function(obj) {
var cb, res,
_this = this;
if (!this.Shred) {
this.initShred();
}
cb = obj.on;
res = {
error: function(response) {
if (obj) {
return cb.error(response);
}
},
redirect: function(response) {
if (obj) {
return cb.redirect(response);
}
},
307: function(response) {
if (obj) {
return cb.redirect(response);
}
},
response: function(raw) {
var headers, out;
if (obj) {
headers = raw._headers;
out = {
headers: headers,
url: raw.request.url,
method: raw.request.method,
status: raw.status,
data: raw.content.data
};
return cb.response(out);
}
}
};
if (obj) {
obj.on = res;
}
return this.shred.request(obj);
};
SwaggerHttp.prototype.executeWithJQuery = function(obj) {
var beforeSend, cb, request,
_this = this;
cb = obj.on;
request = obj;
obj.type = obj.method;
obj.cache = false;
beforeSend = function(xhr) {
var key, _results;
if (obj.headers) {
_results = [];
for (key in obj.headers) {
if (key.toLowerCase() === "content-type") {
_results.push(obj.contentType = obj.headers[key]);
} else if (key.toLowerCase() === "accept") {
_results.push(obj.accepts = obj.headers[key]);
} else {
_results.push(xhr.setRequestHeader(key, obj.headers[key]));
}
}
return _results;
}
};
obj.beforeSend = beforeSend;
obj.data = obj.body;
obj.complete = function(response, textStatus, opts) {
var headerArray, headers, i, out, _i, _j, _k, _ref, _ref1, _ref2, _ref3, _results, _results1;
headers = {};
headerArray = response.getAllResponseHeaders().split(":");
for (i = _i = 0, _ref = headerArray.length / 2, _ref1 = 2.; _ref1 > 0 ? _i <= _ref : _i >= _ref; i = _i += _ref1) {
headers[headerArray[i]] = headerArray[i + 1];
}
out = {
headers: headers,
url: request.url,
method: request.method,
status: response.status,
data: response.responseText,
headers: headers
};
if (_ref2 = response.status, __indexOf.call((function() {
_results = [];
for (_j = 200; _j <= 299; _j++){ _results.push(_j); }
return _results;
}).apply(this), _ref2) >= 0) {
cb.response(out);
}
if ((_ref3 = response.status, __indexOf.call((function() {
_results1 = [];
for (_k = 400; _k <= 599; _k++){ _results1.push(_k); }
return _results1;
}).apply(this), _ref3) >= 0) || response.status === 0) {
cb.error(out);
}
return cb.response(out);
};
$.support.cors = true;
return $.ajax(obj);
};
SwaggerHttp.prototype.isIE = function() {
var isIE, nav, version;
({
isIE: false
});
if (typeof navigator !== 'undefined' && navigator.userAgent) {
nav = navigator.userAgent.toLowerCase();
if (nav.indexOf('msie') !== -1) {
version = parseInt(nav.split('msie')[1]);
if (version <= 8) {
isIE = true;
}
}
}
return isIE;
};
return SwaggerHttp;
})();
@@ -1159,15 +1317,25 @@
return auth;
};
SwaggerAuthorizations.prototype.apply = function(obj) {
var key, value, _ref, _results;
SwaggerAuthorizations.prototype.remove = function(name) {
return delete this.authz[name];
};
SwaggerAuthorizations.prototype.apply = function(obj, authorizations) {
var key, result, status, value, _ref;
status = null;
_ref = this.authz;
_results = [];
for (key in _ref) {
value = _ref[key];
_results.push(value.apply(obj));
result = value.apply(obj, authorizations);
if (result === false) {
status = false;
}
if (result === true) {
status = true;
}
}
return _results;
return status;
};
return SwaggerAuthorizations;
@@ -1187,7 +1355,7 @@
this.type = type;
}
ApiKeyAuthorization.prototype.apply = function(obj) {
ApiKeyAuthorization.prototype.apply = function(obj, authorizations) {
if (this.type === "query") {
if (obj.url.indexOf('?') > 0) {
obj.url = obj.url + "&" + this.name + "=" + this.value;
@@ -1196,7 +1364,8 @@
}
return true;
} else if (this.type === "header") {
return obj.headers[this.name] = this.value;
obj.headers[this.name] = this.value;
return true;
}
};
@@ -1205,6 +1374,8 @@
})();
PasswordAuthorization = (function() {
PasswordAuthorization._btoa = null;
PasswordAuthorization.prototype.name = null;
PasswordAuthorization.prototype.username = null;
@@ -1215,10 +1386,20 @@
this.name = name;
this.username = username;
this.password = password;
PasswordAuthorization._ensureBtoa();
}
PasswordAuthorization.prototype.apply = function(obj) {
return obj.headers["Authorization"] = "Basic " + btoa(this.username + ":" + this.password);
PasswordAuthorization.prototype.apply = function(obj, authorizations) {
obj.headers["Authorization"] = "Basic " + PasswordAuthorization._btoa(this.username + ":" + this.password);
return true;
};
PasswordAuthorization._ensureBtoa = function() {
if (typeof window !== 'undefined') {
return this._btoa = btoa;
} else {
return this._btoa = require("btoa");
}
};
return PasswordAuthorization;
@@ -1239,6 +1420,8 @@
this.PasswordAuthorization = PasswordAuthorization;
this.SwaggerHttp = SwaggerHttp;
this.authorizations = new SwaggerAuthorizations();
}).call(this);
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "swagger-ui",
"version": "2.0.3",
"version": "2.0.4",
"description": "Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API",
"scripts": {
"build": "PATH=$PATH:./node_modules/.bin cake dist",
@@ -19,7 +19,7 @@
"readmeFilename": "README.md",
"dependencies": {
"coffee-script": "~1.5.0",
"swagger-client": "~2.0",
"swagger-client": "2.0.9",
"handlebars": "~1.0.10",
"less": "~1.4.2"
}
+1 -1
View File
@@ -68,7 +68,7 @@ class SwaggerUi extends Backbone.Router
)
buildUrl: (base, url) ->
console.log "base is " + base
log "base is " + base
parts = base.split("/")
base = parts[0] + "//" + parts[2]
if url.indexOf("/") is 0
+20 -20
View File
@@ -37,7 +37,7 @@ class OperationView extends Backbone.View
type = param.type || param.dataType
if type.toLowerCase() == 'file'
if !contentTypeModel.consumes
console.log "set content type "
log "set content type "
contentTypeModel.consumes = 'multipart/form-data'
responseContentTypeView = new ResponseContentTypeView({model: contentTypeModel})
@@ -110,7 +110,7 @@ class OperationView extends Backbone.View
parent.showCompleteStatus response
handleFileUpload: (map, form) ->
console.log "it's a file upload"
log "it's a file upload"
for o in form.serializeArray()
if(o.value? && jQuery.trim(o.value).length > 0)
map[o.name] = o.value
@@ -129,13 +129,13 @@ class OperationView extends Backbone.View
if param.paramType is 'header'
headerParams[param.name] = map[param.name]
console.log headerParams
log headerParams
# add files
$.each $('input[type~="file"]'), (i, el) ->
for el in form.find('input[type~="file"]')
bodyParam.append($(el).attr('name'), el.files[0])
console.log(bodyParam)
log(bodyParam)
@invocationUrl =
if @model.supportHeaderParams()
@@ -174,7 +174,7 @@ class OperationView extends Backbone.View
o = {}
o.content = {}
o.content.data = data.responseText
o.getHeaders = () => {"Content-Type": data.getResponseHeader("Content-Type")}
o.getHeaders = () => {"Content-Type": data.headers("Content-Type")}
o.request = {}
o.request.url = @invocationUrl
o.status = data.status
@@ -271,37 +271,37 @@ class OperationView extends Backbone.View
# puts the response data in UI
showStatus: (data) ->
content = data.content.data
headers = data.getHeaders()
showStatus: (response) ->
content = response.data
headers = response.headers
# if server is nice, and sends content-type back, we can use it
contentType = headers["Content-Type"]
contentType = if headers["Content-Type"] then headers["Content-Type"].split(";")[0].trim() else null
if content == undefined
if !content
code = $('<code />').text("no content")
pre = $('<pre class="json" />').append(code)
else if contentType.indexOf("application/json") == 0 || contentType.indexOf("application/hal+json") == 0
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, 2))
else if contentType is "application/json" || /\+json$/.test(contentType)
code = $('<code />').text(JSON.stringify(JSON.parse(content), null, " "))
pre = $('<pre class="json" />').append(code)
else if contentType.indexOf("application/xml") == 0
else if contentType is "application/xml" || /\+xml$/.test(contentType)
code = $('<code />').text(@formatXml(content))
pre = $('<pre class="xml" />').append(code)
else if contentType.indexOf("text/html") == 0
else if contentType is "text/html"
code = $('<code />').html(content)
pre = $('<pre class="xml" />').append(code)
else if contentType.indexOf("image/") == 0
pre = $('<img>').attr('src',data.request.url)
else if /^image\//.test(contentType)
pre = $('<img>').attr('src',response.url)
else
# don't know what to render!
code = $('<code />').text(content)
pre = $('<pre class="json" />').append(code)
response_body = pre
$(".request_url", $(@el)).html "<pre>" + data.request.url + "</pre>"
$(".response_code", $(@el)).html "<pre>" + data.status + "</pre>"
$(".request_url", $(@el)).html "<pre>" + response.url + "</pre>"
$(".response_code", $(@el)).html "<pre>" + response.status + "</pre>"
$(".response_body", $(@el)).html response_body
$(".response_headers", $(@el)).html "<pre>" + JSON.stringify(data.getHeaders(), null, " ").replace(/\n/g, "<br>") + "</pre>"
$(".response_headers", $(@el)).html "<pre>" + JSON.stringify(response.headers, null, " ").replace(/\n/g, "<br>") + "</pre>"
$(".response", $(@el)).slideDown()
$(".response_hider", $(@el)).show()
$(".response_throbber", $(@el)).hide()
@@ -2,7 +2,6 @@ class ResourceView extends Backbone.View
initialize: ->
render: ->
console.log @model.description
$(@el).html(Handlebars.templates.resource(@model))
@number = 0
+6 -11
View File
@@ -2,10 +2,10 @@
<html>
<head>
<title>Swagger UI</title>
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
<link href='css/highlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<script type="text/javascript" src="lib/shred.bundle.js" /></script>
<script type="text/javascript" src="lib/shred.bundle.js"></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
@@ -23,25 +23,20 @@
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
onComplete: function(swaggerApi, swaggerUi){
if(console) {
console.log("Loaded SwaggerUI")
}
log("Loaded SwaggerUI")
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
},
onFailure: function(data) {
if(console) {
console.log("Unable to Load SwaggerUI");
console.log(data);
}
log("Unable to Load SwaggerUI");
},
docExpansion: "none"
});
$('#input_apiKey').change(function() {
var key = $('#input_apiKey')[0].value;
console.log("key: " + key);
log("key: " + key);
if(key && key.trim() != "") {
console.log("added key " + key);
log("added key " + key);
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
}
})