This commit is contained in:
2025-04-21 14:10:27 +08:00
commit cb4c3b2935
2761 changed files with 1382589 additions and 0 deletions

View File

@@ -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();
})();

View File

@@ -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>&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -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');
}