Thursday, 31 May 2018

AEM 6.4 Content Fragment output as JSON

AEM Content Fragments can be accessed through JSON file URL's.

Create Content Fragments : Step By Step Tutorial

Why we need JSON Formats?
Content Fragments are not just for web pages. A Content Fragment is made available to external applications through JSON format delivery methods. These applications could be,
  • Single Page Applications
  • Native Mobile Applications
  • other channels and touch-points external to AEM
[Click on image to see it big]





AEM 6.4 core components having the capability to export its data to JSON format. This structured content can then be used to deliver to cross channels other than AEM pages. 

Difference between Content Fragment & Experience Fragment
Major difference between Content Fragment & Experience Fragment is that Content Fragment is pure content, without design and layout, but Experience Fragments are fully laid out content - a fragment/portion of a web page.

There are 2 types of content fragments

Simple fragments : Which does not have any predefined structure(only text, and images). Simple Fragment template is the supporting element for this.

Fragments that contain structured content: This is based on a content fragment model. This model will give defined structure.

How do we generate JSON format of a Content Fragment?

AEM 6.4 version also supports JSON Exporter with Content Fragment Core Components. Using this AEM JSON exporter, we can deliver the contents of an AEM page in JSON data model format. This can then be consumed by any third party applications other than AEM.

JSON Exporter is supported by suffixing a url with '.model.json'

Access JSON Format of a Content Fragment

Say we have created 'My Simple Fragment(my-simple-fragment)' Content Fragment,

We can see the complete content using url,
http://localhost:4502/content/dam/my-simple-fragment/_jcr_content/model.json


As you see the output

    {
        "jcr:primaryType": "nt:unstructured",
        "jcr:title": "Simple Fragment",
        "version": 2,
        "jcr:description": "A simple fragment, containing one single element and no predefined variations",
        "precreateElements": true
    }

   
Accessing the JSON output of a Content Fragment authored on a page.


Step1: Access the page JSON

Now I have authored my previously created 'My Simple Fragment(my-simple-fragment)' in We-retail site.(/content/we-retail/language-masters/en/men.html)

Its JSON output can be access through url,
http://localhost:4502/content/we-retail/language-masters/en/men.model.json

Step2: Access the Content Fragment JSON
We can see the content fragment in this page as shown.





To get the authored 'Content Fragment JSON', access the '.model.json' url of the content fragment as below,

http://localhost:4502/content/we-retail/language-masters/en/men/jcr:content/root/responsivegrid/contentfragment_1655772226.model.json

As you see the JSON will have all elements including variations created/authored.





Create Content Fragments : Step By Step Tutorial

No comments:

Post a Comment