Last active
November 8, 2022 05:11
-
-
Save ponelat/a51fe50481f8b7a31038 to your computer and use it in GitHub Desktop.
Select Box Url Swagger-UI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<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> | |
<script type="text/javascript"> | |
$(function () { | |
var url = window.location.search.match(/url=([^&]+)/); | |
if (url && url.length > 1) { | |
url = decodeURIComponent(url[1]); | |
} else { | |
url = "http://petstore.swagger.io/v2/swagger.json"; | |
} | |
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", | |
realm: "your-realms", | |
appName: "your-app-name" | |
}); | |
} | |
$('pre code').each(function(i, e) { | |
hljs.highlightBlock(e) | |
}); | |
addApiKeyAuthorization(); | |
}, | |
onFailure: function(data) { | |
log("Unable to Load SwaggerUI"); | |
}, | |
docExpansion: "none", | |
apisSorter: "alpha" | |
}); | |
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"> | |
<select id="input_baseUrl" name="baseUrl"> | |
</select> | |
</div> | |
<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div> | |
<div class='input'><a id="explore" href="#">Explore</a></div> | |
</form> | |
</div> | |
</div> | |
<div id="message-bar" class="swagger-ui-wrap"> </div> | |
<div id="swagger-ui-container" class="swagger-ui-wrap"></div> | |
<script> | |
var spec = { | |
'one': 'http://petstore.swagger.io/v2/swagger.json', | |
'two': 'http://petstore.swagger.io/v2/swagger.json' | |
} | |
var sel = $('#input_baseUrl'); | |
$.each(spec,function(key,val){ | |
var opt = $('<option>').prop('value', val).html(key); | |
sel.append(opt); | |
}); | |
</script> | |
</body> | |
</html> |
Is there an option to display all apis at once?
Nice job!
Hi there,
Can I use this to display list of APIs for a particular service?
If so, do I have to change only the baseUrl and spec ?
Thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks this is excellent.
How can I automatically make the UI when the dropdown is selected i.e. onChange submit/click Explore