23
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
(function () {
|
||||
var DiscoveryUrlSelector = Backbone.View.extend({
|
||||
render: function() {
|
||||
// Don't re-render on subsequent reloads
|
||||
var defaultVal = this.$el.val()
|
||||
if (this.$el.prop('tagName') != 'SELECT') {
|
||||
var select = $('<select id="input_baseUrl" name="baseUrl"></select>');
|
||||
select
|
||||
.css('margin', '0')
|
||||
.css('border', '1px solid gray')
|
||||
.css('padding', '3px')
|
||||
.css('width', '400px')
|
||||
.css('font-size', '0.9em');
|
||||
|
||||
var rootUrl = this.options.rootUrl;
|
||||
_.each(this.options.discoveryPaths, function(path) {
|
||||
var option = $('<option>' + rootUrl + "/" + path + '</option>');
|
||||
select.append(option);
|
||||
});
|
||||
|
||||
select.val(defaultVal);
|
||||
this.$el.replaceWith(select);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
new DiscoveryUrlSelector({
|
||||
el: $('#input_baseUrl'),
|
||||
rootUrl: swashbuckleConfig.rootUrl,
|
||||
discoveryPaths: swashbuckleConfig.discoveryPaths
|
||||
}).render();
|
||||
})();
|
||||
@@ -0,0 +1,198 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="x-ua-compatible" content="IE=edge">
|
||||
<title>Swagger UI</title>
|
||||
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
|
||||
<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
|
||||
<script src='lang/lang.js' type='text/javascript'></script>
|
||||
<link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/ext.css' media="screen" rel='stylesheet' type='text/css'/>
|
||||
|
||||
%(StylesheetIncludes)
|
||||
|
||||
<script src='lib/object-assign-pollyfill.js' type='text/javascript'></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>
|
||||
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
|
||||
<script src='lib/handlebars-4.0.5.js' type='text/javascript'></script>
|
||||
<script src='lib/lodash.min.js' type='text/javascript'></script>
|
||||
<script src='lib/backbone-min.js' type='text/javascript'></script>
|
||||
<script src='swagger-ui.js' type='text/javascript'></script>
|
||||
<script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
|
||||
<script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
|
||||
<script src='lib/jsoneditor.min.js' type='text/javascript'></script>
|
||||
<script src='lib/marked.js' type='text/javascript'></script>
|
||||
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
|
||||
<script src='lib/jquery.sieve.min.js' type='text/javascript'></script>
|
||||
|
||||
<!-- Some basic translations -->
|
||||
<script src='lang/translator.js' type='text/javascript'></script>
|
||||
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
|
||||
<!-- <script src='lang/en.js' type='text/javascript'></script> -->
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
// Get Swashbuckle config into JavaScript
|
||||
function arrayFrom(configString) {
|
||||
return (configString !== "") ? configString.split('|') : [];
|
||||
}
|
||||
|
||||
function stringOrNullFrom(configString) {
|
||||
return (configString !== "null") ? configString : null;
|
||||
}
|
||||
|
||||
window.swashbuckleConfig = {
|
||||
rootUrl: '%(RootUrl)',
|
||||
discoveryPaths: arrayFrom('%(DiscoveryPaths)'),
|
||||
booleanValues: arrayFrom('%(BooleanValues)'),
|
||||
validatorUrl: stringOrNullFrom('%(ValidatorUrl)'),
|
||||
customScripts: arrayFrom('%(CustomScripts)'),
|
||||
docExpansion: '%(DocExpansion)',
|
||||
supportedSubmitMethods: arrayFrom('%(SupportedSubmitMethods)'),
|
||||
oAuth2Enabled: ('%(OAuth2Enabled)' == 'true'),
|
||||
oAuth2ClientId: '%(OAuth2ClientId)',
|
||||
oAuth2ClientSecret: '%(OAuth2ClientSecret)',
|
||||
oAuth2Realm: '%(OAuth2Realm)',
|
||||
oAuth2AppName: '%(OAuth2AppName)',
|
||||
oAuth2ScopeSeperator: '%(OAuth2ScopeSeperator)',
|
||||
oAuth2AdditionalQueryStringParams: JSON.parse('%(OAuth2AdditionalQueryStringParams)'),
|
||||
apiKeyName: '%(ApiKeyName)',
|
||||
apiKeyIn: '%(ApiKeyIn)'
|
||||
};
|
||||
|
||||
hljs.configure({
|
||||
highlightSizeThreshold: 5000
|
||||
});
|
||||
|
||||
// Pre load translate...
|
||||
if(window.SwaggerTranslator) {
|
||||
window.SwaggerTranslator.translate();
|
||||
}
|
||||
|
||||
window.swaggerUi = new SwaggerUi({
|
||||
url: swashbuckleConfig.rootUrl + "/" + swashbuckleConfig.discoveryPaths[0],
|
||||
dom_id: "swagger-ui-container",
|
||||
supportedSubmitMethods: swashbuckleConfig.supportedSubmitMethods,
|
||||
booleanValues: swashbuckleConfig.booleanValues,
|
||||
//字符集设置,en:英文,zh_CN:中文
|
||||
locale:"zh_CN",
|
||||
onComplete: function(swaggerApi, swaggerUi){
|
||||
if (typeof initOAuth == "function" && swashbuckleConfig.oAuth2Enabled) {
|
||||
initOAuth({
|
||||
clientId: swashbuckleConfig.oAuth2ClientId,
|
||||
clientSecret: swashbuckleConfig.oAuth2ClientSecret,
|
||||
realm: swashbuckleConfig.oAuth2Realm,
|
||||
appName: swashbuckleConfig.oAuth2AppName,
|
||||
scopeSeparator: swashbuckleConfig.oAuth2ScopeSeperator,
|
||||
additionalQueryStringParams: swashbuckleConfig.oAuth2AdditionalQueryStringParams
|
||||
});
|
||||
}
|
||||
|
||||
if(window.SwaggerTranslator){
|
||||
window.SwaggerTranslator.translate();
|
||||
}
|
||||
|
||||
$("pre code").each(function(i,e){
|
||||
hljs.highlightBlock(e);
|
||||
});
|
||||
|
||||
var searchTemplate="<div class='filter'><fieldset class='search'><input type='text' placeholder='查询方法 '/><button type='submit'><i class='icon-search'></i></button></fieldset></div>";
|
||||
|
||||
$("#swagger-ui-container").find(">div>ul").sieve({
|
||||
itemSelector:"li",
|
||||
searchTemplate:searchTemplate
|
||||
});
|
||||
|
||||
$(".filter input").on("keypress",function(){
|
||||
$("#resources >li > ul.endpoints").show();
|
||||
});
|
||||
|
||||
window.swaggerApi = swaggerApi;
|
||||
_.each(swashbuckleConfig.customScripts, function (script) {
|
||||
$.getScript(script);
|
||||
});
|
||||
},
|
||||
onFailure: function(data) {
|
||||
log("Unable to Load SwaggerUI");
|
||||
},
|
||||
docExpansion: swashbuckleConfig.docExpansion,
|
||||
//模块排序
|
||||
apisSorter: "alpha",
|
||||
//模块内部方法排序
|
||||
operationsSorter: "method",
|
||||
//方法响应排序
|
||||
operationResponsesSorter: "sortWeight",
|
||||
jsonEditor: false,
|
||||
defaultModelRendering: 'schema',
|
||||
showRequestHeaders: false,
|
||||
showOperationIds: false,
|
||||
//oauth2RedirectUrl: window.location.href.replace('index', 'o2c-html').split('#')[0]
|
||||
});
|
||||
|
||||
if (window.swashbuckleConfig.validatorUrl !== '')
|
||||
window.swaggerUi.options.validatorUrl = window.swashbuckleConfig.validatorUrl;
|
||||
|
||||
function addApiKeyAuthorization() {
|
||||
var key=$("#input_apiKey")[0].value;
|
||||
if (key && key.trim() != "") {
|
||||
if (swashbuckleConfig.apiKeyIn === "query") {
|
||||
key = encodeURIComponent(key);
|
||||
}
|
||||
var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization(swashbuckleConfig.apiKeyName, key, swashbuckleConfig.apiKeyIn);
|
||||
window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
|
||||
log("added key "+key);
|
||||
}
|
||||
}
|
||||
|
||||
$("#input_apiKey").change(addApiKeyAuthorization);
|
||||
|
||||
window.swaggerUi.load();
|
||||
|
||||
function log() {
|
||||
if ('console' in window) {
|
||||
console.log.apply(console, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
$("#language").change(function() {
|
||||
window.swaggerUi.setLocale($("#language").val());
|
||||
window.swaggerUi.load();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="swagger-section">
|
||||
<div id='header'>
|
||||
<div class="swagger-ui-wrap">
|
||||
<a id="logo" href="#"><img class="logo__img" alt="swagger" height="30" width="30" src="images/logo_small.png" /><span class="logo__title">swagger</span></a>
|
||||
<form id='api_selector'>
|
||||
<!--<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/>
|
||||
|
||||
</div>-->
|
||||
<div id="menubar">
|
||||
|
||||
</div><!--menubar-->>
|
||||
<div id='auth_container'></div>
|
||||
<div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>
|
||||
<div class="input">
|
||||
<select id="language">
|
||||
<option value="zh_CN">中文(简体)</option>
|
||||
<option value="en">English</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate> </div>
|
||||
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
/* Google Font's Droid Sans */
|
||||
@font-face {
|
||||
font-family: 'Droid Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Droid Sans'), local('DroidSans'), url('../fonts/DroidSans-ttf'), format('truetype');
|
||||
}
|
||||
/* Google Font's Droid Sans Bold */
|
||||
@font-face {
|
||||
font-family: 'Droid Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Droid Sans Bold'), local('DroidSans-Bold'), url('../fonts/DroidSans-Bold-ttf'), format('truetype');
|
||||
}
|
||||
Reference in New Issue
Block a user