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"
 }

Reply via email to