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() {
oauth.run();
openapi.run();
return this;
}

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

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>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-http-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<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%
*/


package org.rapidoid.openapi;

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

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

public class OpenAPI extends RapidoidThing {

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_VERB_TEMPLATE = Templates.load("openapi-verb.yaml");

private static final Config OPENAPI = Conf.OPENAPI;

public static void register(Setup setup) {

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

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")));

Hashtable<String, List<Route>> paths = null;
HttpRoutes routes = setup.routes();

if (routes != null && !routes.isEmpty()) {
Set<Route> routeSet = routes.all();
paths = new Hashtable<String, List<Route>>();

for (Route route: routeSet) {
String path = route.path().trim();
if (!paths.containsKey(path)) {
paths.put(path, new ArrayList<Route>());
}

List<Route> routeList = paths.get(path);
routeList.add(route);
}
}

if (paths != null && paths.size() > 0) {
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);
for (Route route: routeListPath) {
String verb = route.verb().name().toLowerCase();
openApiYaml.append(OPENAPI_VERB_TEMPLATE.render(U.map("route_verb", verb)));
}
}
}

final String openApiYamlPage = openApiYaml.toString();

setup.get(Msc.specialUri("openapi")).plain(new ReqHandler() {
@Override
public Object execute(Req req) throws Exception {
return GUI.hardcoded(openApiYamlPage);
}
});
}
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_VERB_TEMPLATE = Templates.load("openapi-verb.yaml");

private static final Config OPENAPI = Conf.OPENAPI;

public static void bootstrap(Setup setup) {

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

final StringBuilder openApiYaml = new StringBuilder();

Map<String, String> info = U.map(
"openapi_project_version", "1.0",
"openapi_project_title", "Project Title",
"openapi_project_url", "http://openapi.rapidoid.org"
);

openApiYaml.append(OPENAPI_TEMPLATE.render(info));

Hashtable<String, List<Route>> paths = null;
HttpRoutes routes = setup.routes();

if (routes != null && !routes.isEmpty()) {
Set<Route> routeSet = routes.all();
paths = new Hashtable<>();

for (Route route : routeSet) {
String path = route.path().trim();
if (!paths.containsKey(path)) {
paths.put(path, new ArrayList<Route>());
}

List<Route> routeList = paths.get(path);
routeList.add(route);
}
}

if (paths != null && paths.size() > 0) {
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);
for (Route route : routeListPath) {
String verb = route.verb().name().toLowerCase();
openApiYaml.append(OPENAPI_VERB_TEMPLATE.render(U.map("route_verb", verb)));
}
}
}

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 static void main(String[] args) {
Setup setup = On.setup();
public static void main(String[] args) {
Setup setup = On.setup();

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

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

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

}

0 comments on commit dcce71f

Please sign in to comment.