This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
The following commit(s) were added to refs/heads/master by this push:
new e5cd438 tweaks
e5cd438 is described below
commit e5cd438e3726c11edf9bfee3e868b48adbf1796c
Author: Bertrand Delacretaz <[email protected]>
AuthorDate: Wed Aug 26 17:52:06 2020 +0200
tweaks
---
dokapi/README.md | 6 +++++-
dokapi/src/main/java/org/apache/sling/dokapi/impl/P.java | 10 ++++++++--
.../java/org/apache/sling/dokapi/impl/PipelineContext.java | 10 ++++++----
.../resources/SLING-INF/initial-content/content/articles.json | 3 ++-
4 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/dokapi/README.md b/dokapi/README.md
index 1af24dc..04b6b21 100644
--- a/dokapi/README.md
+++ b/dokapi/README.md
@@ -27,4 +27,8 @@ Build and start this with
And open the _dokapi_ root page at
- http://localhost:8080
\ No newline at end of file
+ http://localhost:8080
+
+After that...well, the API is supposed to be _discoverable_ so you should find
your way!
+
+The `/content/articles` subtree is where the most interesting content is, for
now.
\ No newline at end of file
diff --git a/dokapi/src/main/java/org/apache/sling/dokapi/impl/P.java
b/dokapi/src/main/java/org/apache/sling/dokapi/impl/P.java
index 1f5bce6..86449a8 100644
--- a/dokapi/src/main/java/org/apache/sling/dokapi/impl/P.java
+++ b/dokapi/src/main/java/org/apache/sling/dokapi/impl/P.java
@@ -26,6 +26,7 @@ import javax.json.JsonObjectBuilder;
import org.apache.sling.api.resource.ValueMap;
class P {
+ static final String [] IGNORE_RESOURCE_PREIX = { "jcr:", "rep:", "oak:" };
static final String [] TITLE_PROPS = { "jcr:title", "title" };
static final String [] NAME_PROPS = { "jcr:name", "name" };
static final String [] TEXT_PROPS = { "jcr:text", "text" };
@@ -51,7 +52,7 @@ class P {
}
static void maybeAddOneOf(JsonObjectBuilder b, String propName, ValueMap
vm, String [] props) {
- for(String prop : NAME_PROPS) {
+ for(String prop : props) {
if(maybeAdd(b, prop, propName, vm)) {
break;
}
@@ -63,7 +64,12 @@ class P {
}
static boolean ignoreResource(String name) {
- return name.startsWith("rep:");
+ for(String prefix : IGNORE_RESOURCE_PREIX) {
+ if(name.startsWith(prefix)) {
+ return true;
+ }
+ }
+ return false;
}
static String convertName(String in) {
diff --git
a/dokapi/src/main/java/org/apache/sling/dokapi/impl/PipelineContext.java
b/dokapi/src/main/java/org/apache/sling/dokapi/impl/PipelineContext.java
index 06e6d8e..7261261 100644
--- a/dokapi/src/main/java/org/apache/sling/dokapi/impl/PipelineContext.java
+++ b/dokapi/src/main/java/org/apache/sling/dokapi/impl/PipelineContext.java
@@ -30,6 +30,7 @@ public class PipelineContext {
private final SlingHttpServletRequest request;
public final Resource resource;
public final JsonObjectBuilder api;
+ public final JsonObjectBuilder navigation;
public final JsonObjectBuilder metadata;
public final JsonObjectBuilder children;
public final JsonObjectBuilder content;
@@ -38,17 +39,17 @@ public class PipelineContext {
this.request = request;
resource = request.getResource();
- // TODO should create these on demand
api = Json.createObjectBuilder();
+ navigation = Json.createObjectBuilder();
metadata = Json.createObjectBuilder();
children = Json.createObjectBuilder();
content = Json.createObjectBuilder();
- api.add("_url", pathToUrl(resource.getPath()));
+ navigation.add("self", pathToUrl(resource.getPath()));
if(resource.getParent() != null) {
- api.add("_parentUrl", pathToUrl(resource.getParent().getPath()));
+ navigation.add("parent",
pathToUrl(resource.getParent().getPath()));
}
- api.add("_id", resource.getPath());
+ api.add("id", resource.getPath());
}
private void maybeAdd(JsonObjectBuilder target, String key,
JsonObjectBuilder src) {
@@ -61,6 +62,7 @@ public class PipelineContext {
JsonObject build() {
final JsonObjectBuilder b = Json.createObjectBuilder();
maybeAdd(b, "api", api);
+ maybeAdd(b, "navigation", navigation);
maybeAdd(b, "metadata", metadata);
maybeAdd(b, "content", content);
maybeAdd(b, "children", children);
diff --git
a/dokapi/src/main/resources/SLING-INF/initial-content/content/articles.json
b/dokapi/src/main/resources/SLING-INF/initial-content/content/articles.json
index f1d1b47..1e1f966 100644
--- a/dokapi/src/main/resources/SLING-INF/initial-content/content/articles.json
+++ b/dokapi/src/main/resources/SLING-INF/initial-content/content/articles.json
@@ -1,3 +1,4 @@
{
- "jcr:primaryType":"sling:Folder"
+ "jcr:primaryType":"sling:Folder",
+ "title":"Docapi test content: a number of articles in a few sections"
}