Skip to content

Commit

Permalink
Separated low-level and high-level API examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Oct 7, 2015
1 parent d50fba2 commit 0b30f16
Show file tree
Hide file tree
Showing 11 changed files with 120 additions and 137 deletions.
36 changes: 25 additions & 11 deletions rapidoid-docs/src/main/java/org/rapidoid/docs/Docs.java
Expand Up @@ -49,6 +49,7 @@
@Since("4.1.0")
public class Docs {

private static final String ERROR_404 = "<span class=\"not-found\">404 Not found!</span>";
private static final String STATE = "__state";
private static final String STATE_SUFFIX = "\"-->";
private static final String STATE_PREFIX = "<!--state::\"";
Expand All @@ -75,16 +76,18 @@ private static void generateIndex(String path) {
System.out.println();
System.out.println();

List<Map<String, ?>> examples = U.list();
List<Map<String, ?>> examplesl = U.list();
IntWrap nl = new IntWrap();
List<String> eglistl = IO.loadLines("examplesl.txt");
processAll(examplesl, nl, eglistl);

IntWrap nn = new IntWrap();
List<Map<String, ?>> examplesh = U.list();
IntWrap nh = new IntWrap();
List<String> eglisth = IO.loadLines("examplesh.txt");
processAll(examplesh, nh, eglisth);

List<String> eglist = IO.loadLines("examples.txt");
List<String> processed = processAll(examples, nn, eglist);

System.out.println("Processed: " + processed);

Map<String, ?> model = U.map("examples", examples);
Map<String, ?> model = U.map("examplesh", examplesh, "examplesl", examplesl, "version", UTILS.version()
.replace("-SNAPSHOT", ""));
String html = Templates.fromFile("docs.html").render(model);
IO.save(path + "index.html", html);
}
Expand All @@ -101,14 +104,16 @@ private static List<String> processAll(List<Map<String, ?>> examples, IntWrap nn

String[] parts = eg.split("\\:");
if (parts.length == 2 && !eg.startsWith("#")) {
processIndex(nn, examples, parts[0].trim(), parts[1].trim());
processExample(nn, examples, parts[0].trim(), parts[1].trim());
} else {
System.out.println("Ignoring: " + eg);
}
}

return processed;
}

private static void processIndex(IntWrap nn, List<Map<String, ?>> examples, String id, String title) {
private static void processExample(IntWrap nn, List<Map<String, ?>> examples, String id, String title) {
System.out.println();
System.out.println();
System.out.println(id);
Expand Down Expand Up @@ -187,6 +192,15 @@ private static List<?> getResults(String id) {
String verb = parts[0];
String uri = parts[1];

if (parts.length > 2 && parts[2].startsWith("=>")) {
String result = parts[2].substring(2);
if (result.equals("404")) {
return U.map("verb", verb, "uri", uri, "error", ERROR_404);
} else {
return U.map("verb", verb, "uri", uri, "result", result);
}
}

Map<String, Object> data = parts.length > 2 ? JSON.parse(parts[2], Map.class) : null;
if (data != null) {
data.put(STATE, viewState);
Expand All @@ -207,7 +221,7 @@ private static List<?> getResults(String id) {
} catch (Exception e) {
Throwable cause = UTILS.rootCause(e);
if (cause instanceof HttpException && cause.getMessage().contains("404")) {
error = "<span class=\"not-found\">404 Not found!</span>";
error = ERROR_404;
} else {
e.printStackTrace();
}
Expand Down
43 changes: 43 additions & 0 deletions rapidoid-docs/src/main/java/org/rapidoid/docs/lowsimple/Main.java
@@ -0,0 +1,43 @@
package org.rapidoid.docs.lowsimple;

import java.util.Map;

import org.rapidoid.http.On;
import org.rapidoid.http.ParamHandler;
import org.rapidoid.util.U;

/*
* #%L
* rapidoid-docs
* %%
* Copyright (C) 2014 - 2015 Nikolche Mihajlovski and contributors
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/

public class Main {
public static void main(String[] args) {
On.get("/").html("Hello world!");

On.post("/upper").json(new ParamHandler() {
@Override
public Object handle(Map<String, Object> params) {
String s = String.valueOf(params.get("s"));
return U.map("src", s, "upper", s.toUpperCase());
}
});

On.listen(8080);
}
}
1 change: 1 addition & 0 deletions rapidoid-docs/src/main/resources/examplesl.txt
@@ -0,0 +1 @@
lowsimple: "Hello world" web server
@@ -1,8 +1,8 @@
<div class="eg_title">Add Rapidoid as Maven dependency to your project:</div>
<div class="eg_title">Add <b>rapidoid-main</b> as Maven dependency to your project:</div>
<pre class="eg_code">
&lt;<span class="_code_tag">dependency</span>&gt;
&lt;<span class="_code_tag">groupId</span>&gt;org.rapidoid&lt;/<span class="_code_tag">groupId</span>&gt;
&lt;<span class="_code_tag">artifactId</span>&gt;rapidoid-main&lt;/<span class="_code_tag">artifactId</span>&gt;
&lt;<span class="_code_tag">version</span>&gt;4.2.0&lt;/<span class="_code_tag">version</span>&gt;
&lt;<span class="_code_tag">version</span>&gt;{{version}}&lt;/<span class="_code_tag">version</span>&gt;
&lt;/<span class="_code_tag">dependency</span>&gt;
</pre>
@@ -0,0 +1,8 @@
<div class="eg_title">Add <b>rapidoid-http</b> as Maven dependency to your project:</div>
<pre class="eg_code">
&lt;<span class="_code_tag">dependency</span>&gt;
&lt;<span class="_code_tag">groupId</span>&gt;org.rapidoid&lt;/<span class="_code_tag">groupId</span>&gt;
&lt;<span class="_code_tag">artifactId</span>&gt;rapidoid-http&lt;/<span class="_code_tag">artifactId</span>&gt;
&lt;<span class="_code_tag">version</span>&gt;{{version}}&lt;/<span class="_code_tag">version</span>&gt;
&lt;/<span class="_code_tag">dependency</span>&gt;
</pre>
117 changes: 0 additions & 117 deletions rapidoid-docs/src/main/resources/rapidoid/templates/docs-old.html

This file was deleted.

45 changes: 38 additions & 7 deletions rapidoid-docs/src/main/resources/rapidoid/templates/docs.html
Expand Up @@ -62,7 +62,7 @@
</div>
</nav>

<div class="container">
<div class="container">

<div class="row">
<div class="col-md-7 col-sm-12">
Expand All @@ -83,25 +83,56 @@ <h4 id="main_subtitle">
<div class="row">
<div class="col-md-12">
<div class="caption"><span class="badge badge-docker">Docker</span><span class="docker-code">sudo docker run -d -p 8080:8080 rapidoid/rapidoid</span></div>
<div class="caption"><span class="option-x">OPTION A</span>Using Rapidoid with Docker</div>
<div><span class="docker-code">docker run -d -p 8080:8080 rapidoid/rapidoid</span></div>
</div>
</div>
-->

<!-- GETTING STARTED WITH JAVA -->
<!-- GETTING STARTED WITH JAVA LOW-LEVEL -->

<div class="sep-example"></div>

<div class="row">
<div class="col-md-12">
<div class="caption">Getting started :: Adding Rapidoid to your Java project</div>
<div class="caption"><span class="option-x">OPTION A</span>Using Rapidoid's Low-level API</div>
</div>
</div>

<div class="row">

<div class="col-md-6">
{{>maven}}
{{>mavenl}}
</div>

<div class="col-md-6">
<div class="low-level-desc">
<p><b>Low-level vs. high-level API</b></p>
<p>The low-level HTTP API provides access to the extremely fast Rapidoid HTTP server implemented from scratch on top of Java NIO.</p>
<p>The high-level API is built on top of Rapidoid HTTP server, provides many advanced features for building modern POJO-based web applications.</p>
</div>
</div>

</div>

{{#examplesl}}
{{>example}}
{{/examplesl}}

<!-- GETTING STARTED WITH JAVA HIGH-LEVEL -->

<div class="sep-example"></div>

<div class="row">
<div class="col-md-12">
<div class="caption"><span class="option-x">OPTION B</span>Using Rapidoid's High-level API</div>
</div>
</div>

<div class="row">

<div class="col-md-6">
{{>mavenh}}
</div>

<div class="col-md-6">
Expand All @@ -117,9 +148,9 @@ <h4 id="main_subtitle">

</div>

{{#examples}}
{{#examplesh}}
{{>example}}
{{/examples}}
{{/examplesh}}

</div>
<script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
Expand Down
3 changes: 3 additions & 0 deletions rapidoid-docs/src/main/resources/tests/lowsimple.txt
@@ -0,0 +1,3 @@
GET / =>Hello world!
POST /upper?s=abc =>{"src":"abc","upper":"ABC"}
GET /other =>404

0 comments on commit 0b30f16

Please sign in to comment.