Skip to content

Commit

Permalink
#39 Minor fixes, clean-up and formatting.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Feb 21, 2018
1 parent 782bfd9 commit dcce71f
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 80 deletions.
Expand Up @@ -232,7 +232,7 @@ public AppBootstrap beans() {
} }


public AppBootstrap openapi() { public AppBootstrap openapi() {
oauth.run(); openapi.run();
return this; return this;
} }


Expand All @@ -255,6 +255,7 @@ public void full() {
adminCenter(); adminCenter();
auth(); auth();
oauth(); oauth();
openapi();
} }


static void reset() { static void reset() {
Expand Down
5 changes: 0 additions & 5 deletions rapidoid-openapi/pom.xml
Expand Up @@ -25,11 +25,6 @@
<artifactId>rapidoid-http-server</artifactId> <artifactId>rapidoid-http-server</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-http-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.rapidoid</groupId> <groupId>org.rapidoid</groupId>
<artifactId>rapidoid-gui</artifactId> <artifactId>rapidoid-gui</artifactId>
Expand Down
125 changes: 64 additions & 61 deletions rapidoid-openapi/src/main/java/org/rapidoid/openapi/OpenAPI.java
Expand Up @@ -18,12 +18,12 @@
* #L% * #L%
*/ */



package org.rapidoid.openapi; package org.rapidoid.openapi;


import org.rapidoid.RapidoidThing; import org.rapidoid.RapidoidThing;
import org.rapidoid.config.Conf; import org.rapidoid.config.Conf;
import org.rapidoid.config.Config; import org.rapidoid.config.Config;
import org.rapidoid.gui.GUI;
import org.rapidoid.http.HttpRoutes; import org.rapidoid.http.HttpRoutes;
import org.rapidoid.http.Req; import org.rapidoid.http.Req;
import org.rapidoid.http.ReqHandler; import org.rapidoid.http.ReqHandler;
Expand All @@ -34,69 +34,72 @@
import org.rapidoid.setup.Setup; import org.rapidoid.setup.Setup;
import org.rapidoid.u.U; import org.rapidoid.u.U;
import org.rapidoid.util.Msc; import org.rapidoid.util.Msc;
import org.rapidoid.gui.GUI;


import java.util.ArrayList; import java.util.*;
import java.util.Hashtable;
import java.util.List;
import java.util.Set;


public class OpenAPI extends RapidoidThing { public class OpenAPI extends RapidoidThing {


private static final Template OPENAPI_TEMPLATE = Templates.load("openapi-template.yaml"); private static final Template OPENAPI_TEMPLATE = Templates.load("openapi-template.yaml");
private static final Template OPENAPI_PATH_TEMPLATE = Templates.load("openapi-path.yaml"); private static final Template OPENAPI_PATH_TEMPLATE = Templates.load("openapi-path.yaml");
private static final Template OPENAPI_VERB_TEMPLATE = Templates.load("openapi-verb.yaml"); private static final Template OPENAPI_VERB_TEMPLATE = Templates.load("openapi-verb.yaml");


private static final Config OPENAPI = Conf.OPENAPI; private static final Config OPENAPI = Conf.OPENAPI;


public static void register(Setup setup) { public static void bootstrap(Setup setup) {


if (OPENAPI.isEmpty()) { if (OPENAPI.isEmpty()) {
Log.warn("OpenAPI is not configured!"); Log.warn("OpenAPI is not configured!");
} }


final StringBuilder openApiYaml = new StringBuilder(); final StringBuilder openApiYaml = new StringBuilder();
openApiYaml.append(OPENAPI_TEMPLATE.render(U.map("openapi_project_version", "1.0", "openapi_project_title", "Project Title", "openapi_project_url", "http://openapi.rapidoid.org")));

Map<String, String> info = U.map(
Hashtable<String, List<Route>> paths = null; "openapi_project_version", "1.0",
HttpRoutes routes = setup.routes(); "openapi_project_title", "Project Title",

"openapi_project_url", "http://openapi.rapidoid.org"
if (routes != null && !routes.isEmpty()) { );
Set<Route> routeSet = routes.all();
paths = new Hashtable<String, List<Route>>(); openApiYaml.append(OPENAPI_TEMPLATE.render(info));


for (Route route: routeSet) { Hashtable<String, List<Route>> paths = null;
String path = route.path().trim(); HttpRoutes routes = setup.routes();
if (!paths.containsKey(path)) {
paths.put(path, new ArrayList<Route>()); if (routes != null && !routes.isEmpty()) {
} Set<Route> routeSet = routes.all();

paths = new Hashtable<>();
List<Route> routeList = paths.get(path);
routeList.add(route); for (Route route : routeSet) {
} String path = route.path().trim();
} if (!paths.containsKey(path)) {

paths.put(path, new ArrayList<Route>());
if (paths != null && paths.size() > 0) { }
Set<String> keys = paths.keySet();
for (String path: keys) { List<Route> routeList = paths.get(path);
openApiYaml.append(OPENAPI_PATH_TEMPLATE.render(U.map("route_path", path))); routeList.add(route);

}
List<Route> routeListPath = paths.get(path); }
for (Route route: routeListPath) {
String verb = route.verb().name().toLowerCase(); if (paths != null && paths.size() > 0) {
openApiYaml.append(OPENAPI_VERB_TEMPLATE.render(U.map("route_verb", verb))); Set<String> keys = paths.keySet();
} for (String path : keys) {
} openApiYaml.append(OPENAPI_PATH_TEMPLATE.render(U.map("route_path", path)));
}

List<Route> routeListPath = paths.get(path);
final String openApiYamlPage = openApiYaml.toString(); for (Route route : routeListPath) {

String verb = route.verb().name().toLowerCase();
setup.get(Msc.specialUri("openapi")).plain(new ReqHandler() { openApiYaml.append(OPENAPI_VERB_TEMPLATE.render(U.map("route_verb", verb)));
@Override }
public Object execute(Req req) throws Exception { }
return GUI.hardcoded(openApiYamlPage); }
}
}); final String openApiYamlPage = openApiYaml.toString();
}
setup.get(Msc.specialUri("openapi")).plain(new ReqHandler() {
@Override
public Object execute(Req req) {
return GUI.hardcoded(openApiYamlPage);
}
});
}


} }
Expand Up @@ -5,21 +5,20 @@


public class OpenAPIDemo { public class OpenAPIDemo {


public static void main(String[] args) { public static void main(String[] args) {
Setup setup = On.setup(); Setup setup = On.setup();


On.get("/test1/").plain(OpenAPIDemo.sayHello()); On.get("/test1/").plain(sayHello());
On.get("/test2/saida").plain(OpenAPIDemo.sayHello()); On.get("/test2/foo").plain(sayHello());
On.get("/test2/output").plain(OpenAPIDemo.sayHello()); On.get("/test2/output").plain(sayHello());
On.post("/test2/output").plain(OpenAPIDemo.sayHello()); On.post("/test2/output").plain(sayHello());
On.delete("/test2/output").plain(OpenAPIDemo.sayHello()); On.delete("/test2/output").plain(sayHello());


OpenAPI.register(setup); OpenAPI.bootstrap(setup);
setup.activate(); }
}


public static String sayHello() { private static String sayHello() {
return "Hello"; return "Hello";
} }


} }

0 comments on commit dcce71f

Please sign in to comment.