So when you say data structure you're talking about nodes in the jcr structure and their contents. Each node is wrapped in concept called a resource.
When you wrote the url earlier http://localhost:8090/var/content.tidy.json the underlying REST engine is finding the resource at the path /var/content/ which in this case is specifically a jcr node resource and then it's looking at the extension you're using and selecting an OSGi that renders that service. In this case there's a specific resource renderer that handles json and it's the renderer that is taking your request for that resource and returning the json object. You could actually get the entire tree that you are authorized to see with one call by using http://localhost:8090/var/content.infinity.json More information at http://sling.apache.org/documentation/the-sling-engine/architecture.html -----Original Message----- From: Bruce Edge [mailto:bruce.e...@nextissuemedia.com] Sent: Wednesday, November 12, 2014 2:29 PM To: users@sling.apache.org Subject: Re: HATEOAS compliant json self/child references from sling? I must be missing some fundamental concept here. I'm not sure exactly what you mean by "default json rendering of resources". I'm after structure data here, not actual content rendering. I just want to be able to obtain self & child references in json responses so the UI can create the appropriate tree structure to navigate the JCR data. The actual representation of the leaf node data will be specific to that data type and handled by the client UI. -Bruce From: Sarwar Bhuiyan <sarwar.bhui...@gmail.com<mailto:sarwar.bhui...@gmail.com>> Reply-To: "users@sling.apache.org<mailto:users@sling.apache.org>" <users@sling.apache.org<mailto:users@sling.apache.org>> Date: Wednesday, November 12, 2014 at 11:20 AM To: "users@sling.apache.org<mailto:users@sling.apache.org>" <users@sling.apache.org<mailto:users@sling.apache.org>> Subject: Re: HATEOAS compliant json self/child references from sling? Bruce, it's not the format that's the problem. It's the default json rendering of resources that's the issue for things exposed to the public side. Typically what we do for the web side of things is either write our own servlets or component jsps where we can have more control of what to output. On Wednesday, November 12, 2014, Bruce Edge <bruce.e...@nextissuemedia.com<mailto:bruce.e...@nextissuemedia.com>> wrote: I can understand how exposing that level of structure may be a risk in some circumstances but it allows for a huge leg up on the client side code. Things like https://github.com/GonzaloAlvarez/restangular-hateoas provide a superbly simple way to wrap a UI around the whole thing if you have HATEOAS on the server side. It's as close as you can get to a CRUD UI with seriously minimal code. Also, this is the data format provided by spring-data-rest, so it's a format that already has wide acceptance. I suppose one could enable this only for specific paths if security was a concern. -Bruce From: Jason Bailey <jason.bai...@sas.com<mailto:jason.bai...@sas.com> <javascript:;><mailto: jason.bai...@sas.com<mailto:jason.bai...@sas.com> <javascript:;>>> Reply-To: "users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;><mailto: users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;>>" <users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;><mailto:users@sling.apache.org <javascript:;>>> Date: Wednesday, November 12, 2014 at 11:05 AM To: "users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;><mailto:users@sling.apache.org <javascript:;>>" <users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;><mailto: users@sling.apache.org<mailto:users@sling.apache.org> <javascript:;>>> Subject: RE: HATEOAS compliant json self/child references from sling? Not unless you add it yourself. As a note, you may not want to design your application where you are relying on the default json renderer to supply information to the front end client. It can reveal more information and structure then a lot of people are comfortable with. -----Original Message----- From: Bruce Edge [mailto:bruce.e...@nextissuemedia.com <javascript:;>] Sent: Wednesday, November 12, 2014 1:49 PM To: users Subject: HATEOAS compliant json self/child references from sling? Can one retrieve HATEOAS format responses form sling? %> curl -qu admin:admin http://localhost:8090/var/content.tidy.json { "jcr:createdBy": "admin", "jcr:mimeType": "application/octet-stream", "jcr:created": "Sat Nov 08 2014 16:17:51 GMT-0800", "jcr:lastModified": "Sat Nov 08 2014 16:17:51 GMT-0800", "jcr:primaryType": "sling:Folder" } Using a HATEOAS server I would expect something like this: { "jcr:createdBy": "admin", "jcr:mimeType": "application/octet-stream", "jcr:created": "Sat Nov 08 2014 16:17:51 GMT-0800", "jcr:lastModified": "Sat Nov 08 2014 16:17:51 GMT-0800", "jcr:primaryType": ³sling:Folder" "_links":{ "self":{ "href":"http://localhost:8090/var/content" } } } Is it possible to have sling insert both self and child references into all json responses? -Bruce