forked from Archives/Athou_commafeed
swagger ui
This commit is contained in:
@@ -27,6 +27,7 @@
|
|||||||
"momentjs": "2.6.0",
|
"momentjs": "2.6.0",
|
||||||
"device.js": "matthewhudson/device.js#2ae5c775e35ccc837589e5af34e292c54936778c",
|
"device.js": "matthewhudson/device.js#2ae5c775e35ccc837589e5af34e292c54936778c",
|
||||||
"readabilicons": "arc90/readability-readabilicons#34c55561c5b8ec6e90714b50237c06b13cb9d59c",
|
"readabilicons": "arc90/readability-readabilicons#34c55561c5b8ec6e90714b50237c06b13cb9d59c",
|
||||||
"zocial": "samcollins/css-social-buttons#1f59ecacde475e563fb6771667597493ec4eecb6"
|
"zocial": "samcollins/css-social-buttons#1f59ecacde475e563fb6771667597493ec4eecb6",
|
||||||
|
"swagger-ui": "2.0.21"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
gulpfile.js
10
gulpfile.js
@@ -51,6 +51,12 @@ gulp.task('select2', ['bower'], function() {
|
|||||||
return gulp.src([gif, png]).pipe(gulp.dest(BUILD_DIR + 'css'));
|
return gulp.src([gif, png]).pipe(gulp.dest(BUILD_DIR + 'css'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('swagger-ui', ['bower'], function() {
|
||||||
|
var index_html = SRC_DIR + 'api/index.html';
|
||||||
|
var lib = SRC_DIR + 'lib/swagger-ui/dist/**/*';
|
||||||
|
return gulp.src([lib, index_html]).pipe(gulp.dest(BUILD_DIR + 'api'));
|
||||||
|
});
|
||||||
|
|
||||||
gulp.task('template-cache', function() {
|
gulp.task('template-cache', function() {
|
||||||
var options = {
|
var options = {
|
||||||
module : 'commafeed.services',
|
module : 'commafeed.services',
|
||||||
@@ -59,7 +65,7 @@ gulp.task('template-cache', function() {
|
|||||||
return gulp.src(SRC_DIR + 'templates/**/*.html').pipe(templateCache(options)).pipe(gulp.dest(TEMP_DIR + 'js'));
|
return gulp.src(SRC_DIR + 'templates/**/*.html').pipe(templateCache(options)).pipe(gulp.dest(TEMP_DIR + 'js'));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build-dev', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'template-cache', 'bower'], function() {
|
gulp.task('build-dev', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'swagger-ui', 'template-cache', 'bower'], function() {
|
||||||
var assets = useref.assets({
|
var assets = useref.assets({
|
||||||
searchPath : [SRC_DIR, TEMP_DIR]
|
searchPath : [SRC_DIR, TEMP_DIR]
|
||||||
});
|
});
|
||||||
@@ -69,7 +75,7 @@ gulp.task('build-dev', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2'
|
|||||||
revReplace()).pipe(gulp.dest(BUILD_DIR));
|
revReplace()).pipe(gulp.dest(BUILD_DIR));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'template-cache', 'bower'], function() {
|
gulp.task('build', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'swagger-ui', 'template-cache', 'bower'], function() {
|
||||||
var assets = useref.assets({
|
var assets = useref.assets({
|
||||||
searchPath : [SRC_DIR, TEMP_DIR]
|
searchPath : [SRC_DIR, TEMP_DIR]
|
||||||
});
|
});
|
||||||
|
|||||||
88
src/main/app/api/index.html
Normal file
88
src/main/app/api/index.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Swagger UI</title>
|
||||||
|
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' 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/screen.css' media='print' rel='stylesheet' type='text/css'/>
|
||||||
|
<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>
|
||||||
|
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
|
||||||
|
<script src='lib/handlebars-1.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='lib/swagger.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>
|
||||||
|
|
||||||
|
<!-- enabling this will enable oauth2 implicit scope support -->
|
||||||
|
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
window.swaggerUi = new SwaggerUi({
|
||||||
|
url: "../rest/api-docs",
|
||||||
|
dom_id: "swagger-ui-container",
|
||||||
|
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
|
||||||
|
onComplete: function(swaggerApi, swaggerUi){
|
||||||
|
log("Loaded 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)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: function(data) {
|
||||||
|
log("Unable to Load SwaggerUI");
|
||||||
|
},
|
||||||
|
docExpansion: "none",
|
||||||
|
sorter : "alpha"
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#input_apiKey').change(function() {
|
||||||
|
var key = $('#input_apiKey')[0].value;
|
||||||
|
log("key: " + key);
|
||||||
|
if(key && key.trim() != "") {
|
||||||
|
log("added key " + key);
|
||||||
|
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
window.swaggerUi.load();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="swagger-section">
|
||||||
|
<div id='header'>
|
||||||
|
<div class="swagger-ui-wrap">
|
||||||
|
<a id="logo" href="http://swagger.wordnik.com">swagger</a>
|
||||||
|
<form id='api_selector'>
|
||||||
|
<div class='input icon-btn'>
|
||||||
|
<img id="show-pet-store-icon" src="images/pet_store_api.png" title="Show Swagger Petstore Example Apis">
|
||||||
|
</div>
|
||||||
|
<div class='input icon-btn'>
|
||||||
|
<img id="show-wordnik-dev-icon" src="images/wordnik_api.png" title="Show Wordnik Developer Apis">
|
||||||
|
</div>
|
||||||
|
<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="#">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>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -79,6 +79,15 @@ import com.commafeed.frontend.resource.UserREST;
|
|||||||
import com.commafeed.frontend.servlet.CustomCssServlet;
|
import com.commafeed.frontend.servlet.CustomCssServlet;
|
||||||
import com.commafeed.frontend.servlet.LogoutServlet;
|
import com.commafeed.frontend.servlet.LogoutServlet;
|
||||||
import com.commafeed.frontend.servlet.NextUnreadServlet;
|
import com.commafeed.frontend.servlet.NextUnreadServlet;
|
||||||
|
import com.wordnik.swagger.config.ConfigFactory;
|
||||||
|
import com.wordnik.swagger.config.ScannerFactory;
|
||||||
|
import com.wordnik.swagger.config.SwaggerConfig;
|
||||||
|
import com.wordnik.swagger.jaxrs.config.DefaultJaxrsScanner;
|
||||||
|
import com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider;
|
||||||
|
import com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON;
|
||||||
|
import com.wordnik.swagger.jaxrs.listing.ResourceListingProvider;
|
||||||
|
import com.wordnik.swagger.jaxrs.reader.DefaultJaxrsApiReader;
|
||||||
|
import com.wordnik.swagger.reader.ClassReaders;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
|
public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
|
||||||
@@ -212,7 +221,16 @@ public class CommaFeedApplication extends Application<CommaFeedConfiguration> {
|
|||||||
environment.lifecycle().manage(feedUpdater);
|
environment.lifecycle().manage(feedUpdater);
|
||||||
environment.lifecycle().manage(schedulingService);
|
environment.lifecycle().manage(schedulingService);
|
||||||
|
|
||||||
// TODO swagger ui
|
// Swagger
|
||||||
|
environment.jersey().register(new ApiListingResourceJSON());
|
||||||
|
environment.jersey().register(new ApiDeclarationProvider());
|
||||||
|
environment.jersey().register(new ResourceListingProvider());
|
||||||
|
ScannerFactory.setScanner(new DefaultJaxrsScanner());
|
||||||
|
ClassReaders.setReader(new DefaultJaxrsApiReader());
|
||||||
|
SwaggerConfig swaggerConfig = ConfigFactory.config();
|
||||||
|
swaggerConfig.setApiVersion("1");
|
||||||
|
swaggerConfig.setBasePath("/rest");
|
||||||
|
|
||||||
// TODO password recovery
|
// TODO password recovery
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user