mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-23 06:16:42 +00:00
Vendor latest swagger-ui
This commit is contained in:
parent
9b0539a79d
commit
527bbd1cc3
@ -11,15 +11,14 @@
|
||||
// about supported directives.
|
||||
//
|
||||
//= require_tree .
|
||||
//= require swagger-ui/lib/shred.bundle.js
|
||||
//= require swagger-ui/lib/jquery-1.8.0.min.js
|
||||
//= require swagger-ui/lib/jquery.slideto.min.js
|
||||
//= require swagger-ui/lib/jquery.wiggle.min.js
|
||||
//= require swagger-ui/lib/jquery.ba-bbq.min.js
|
||||
//= require swagger-ui/lib/handlebars-1.0.0.js
|
||||
//= require swagger-ui/lib/handlebars-2.0.0.js
|
||||
//= require swagger-ui/lib/underscore-min.js
|
||||
//= require swagger-ui/lib/backbone-min.js
|
||||
//= require swagger-ui/lib/swagger.js
|
||||
//= require swagger-ui/lib/swagger-client.js
|
||||
//= require swagger-ui/swagger-ui.min.js
|
||||
//= require swagger-ui/lib/highlight.7.3.pack.js
|
||||
//= require swagger-ui/lib/marked.js
|
||||
//= require swagger-ui/lib/swagger-oauth.js
|
||||
|
||||
@ -8,7 +8,7 @@ module SwaggerRails
|
||||
private
|
||||
|
||||
def swagger_file_path_for(api_version)
|
||||
File.join(Rails.root, 'config', 'swagger', "#{api_version}.json")
|
||||
File.join(Rails.root, 'config', 'swagger', api_version, 'swagger.json')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -2,7 +2,8 @@ module SwaggerRails
|
||||
class SwaggerUiController < ApplicationController
|
||||
|
||||
def show
|
||||
@discovery_url = request.path.gsub('/ui', '/docs/v1')
|
||||
@discovery_path = swagger_path('v1')
|
||||
render :index
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
119
app/views/swagger_rails/swagger_ui/index.html.erb
Normal file
119
app/views/swagger_rails/swagger_ui/index.html.erb
Normal file
@ -0,0 +1,119 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<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" />
|
||||
<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'/>
|
||||
<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-2.0.0.js' type='text/javascript'></script>
|
||||
<script src='lib/underscore-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.7.3.pack.js' type='text/javascript'></script>
|
||||
<script src='lib/marked.js' type='text/javascript'></script>
|
||||
<script src='lib/swagger-oauth.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 () {
|
||||
var url = window.location.search.match(/url=([^&]+)/);
|
||||
if (url && url.length > 1) {
|
||||
url = decodeURIComponent(url[1]);
|
||||
} else {
|
||||
url = "<%= @discovery_path %>";
|
||||
}
|
||||
|
||||
// Pre load translate...
|
||||
if(window.SwaggerTranslator) {
|
||||
window.SwaggerTranslator.translate();
|
||||
}
|
||||
window.swaggerUi = new SwaggerUi({
|
||||
url: url,
|
||||
dom_id: "swagger-ui-container",
|
||||
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
|
||||
onComplete: function(swaggerApi, swaggerUi){
|
||||
if(typeof initOAuth == "function") {
|
||||
initOAuth({
|
||||
clientId: "your-client-id",
|
||||
clientSecret: "your-client-secret",
|
||||
realm: "your-realms",
|
||||
appName: "your-app-name",
|
||||
scopeSeparator: ","
|
||||
});
|
||||
}
|
||||
|
||||
if(window.SwaggerTranslator) {
|
||||
window.SwaggerTranslator.translate();
|
||||
}
|
||||
|
||||
$('pre code').each(function(i, e) {
|
||||
hljs.highlightBlock(e)
|
||||
});
|
||||
|
||||
addApiKeyAuthorization();
|
||||
},
|
||||
onFailure: function(data) {
|
||||
log("Unable to Load SwaggerUI");
|
||||
},
|
||||
docExpansion: "none",
|
||||
apisSorter: "alpha",
|
||||
showRequestHeaders: false
|
||||
});
|
||||
|
||||
function addApiKeyAuthorization(){
|
||||
var key = encodeURIComponent($('#input_apiKey')[0].value);
|
||||
if(key && key.trim() != "") {
|
||||
var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
|
||||
window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
|
||||
log("added key " + key);
|
||||
}
|
||||
}
|
||||
|
||||
$('#input_apiKey').change(addApiKeyAuthorization);
|
||||
|
||||
// if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
|
||||
/*
|
||||
var apiKey = "myApiKeyXXXX123456789";
|
||||
$('#input_apiKey').val(apiKey);
|
||||
*/
|
||||
|
||||
window.swaggerUi.load();
|
||||
|
||||
function log() {
|
||||
if ('console' in window) {
|
||||
console.log.apply(console, arguments);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="swagger-section">
|
||||
<div id='header'>
|
||||
<div class="swagger-ui-wrap">
|
||||
<a id="logo" href="http://swagger.io">swagger</a>
|
||||
<form id='api_selector'>
|
||||
<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
|
||||
<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
|
||||
<div class='input'><a id="explore" href="#" data-sw-translate>Explore</a></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>
|
||||
@ -1,30 +0,0 @@
|
||||
#header
|
||||
.swagger-ui-wrap
|
||||
%a#logo{ href: 'http://swagger.io'} swagger
|
||||
%form#api_selector
|
||||
.input
|
||||
%input#input_baseUrl{ name: 'baseUrl' }
|
||||
.input
|
||||
%input#input_apiKey{ name: 'apiKey' }
|
||||
.input
|
||||
%a#input_apiKey{ name: 'apiKey' }
|
||||
|
||||
#message-bar.swagger-ui-wrap
|
||||
|
||||
#swagger-ui-container.swagger-ui-wrap{ data: { discovery_url: @discovery_url } }
|
||||
|
||||
:coffeescript
|
||||
window.swaggerUi = new SwaggerUi(
|
||||
url: $('#swagger-ui-container').data('discoveryUrl')
|
||||
dom_id: 'swagger-ui-container'
|
||||
onComplete: (swaggerApi, swaggerUi) ->
|
||||
log('Loaded SwaggerUi')
|
||||
$('pre code').each (i, e) ->
|
||||
hljs.highlighBlock(e)
|
||||
onFailure: (data) ->
|
||||
log('Unable to load Swagger UI')
|
||||
docExpansion: 'none'
|
||||
sorter: 'alpha'
|
||||
)
|
||||
|
||||
window.swaggerUi.load()
|
||||
@ -1,5 +1,5 @@
|
||||
SwaggerRails::Engine.routes.draw do
|
||||
|
||||
get '/ui', to: 'swagger_ui#show'
|
||||
get '/docs/:api_version', to: 'swagger_docs#show'
|
||||
get '/:api_version/swagger.json', to: 'swagger_docs#show', as: :swagger
|
||||
end
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
Rails.application.routes.draw do
|
||||
|
||||
mount SwaggerRails::Engine => "/swagger_rails"
|
||||
mount SwaggerRails::Engine => '/swagger'
|
||||
end
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit b3dc9c004702a1f81921a9b75f86bf0a31996928
|
||||
Subproject commit 8e72906c911a02853b87f5241d157e83e2bf7377
|
||||
Loading…
Reference in New Issue
Block a user