2017-02-06 86 views
0

沒有CQ/AEM的經驗,但被拋在了最後。CQ5/Adob​​e Experience Manager可以無頭使用嗎?

我有一個方法,我們有一個Web前端(使用Ember.js/handlebars構建)調用Web服務,該服務將反過來加入數據(例如,您觀看過多少部電影)適當的內容(例如,網絡服務知道要在CMS中查找節點X;「感謝觀看所有這些電影!」),並將複製,圖像和數據返回到單個JSON文檔中。

當我有一個RESTful API到CMS時,這非常有效。

但是我現在被要求讓Adobe Experience Manager/CQ5成爲CMS,並且需要知道是否存在相同的事情。

我不這麼認爲;我知道,CQ5使用任何JCR/CRX作爲其內容庫但從我可以看到這些不公開爲Web服務(僅適用於語言層面的API)

AEM 6.2使用JCR OAK這承諾一個RESTful API。

所以總之我的問題是:JCR OAK是否提供了一個RESTful API給內容,如果有的話,任何人都可以提供任何示例/指針嗎?

+3

絕對AEM可以將CRX公開爲JSON。你的問題與[expose-adobe-aem-bundles-as-restful-webservices](https://stackoverflow.com/questions/41877499/expose-adobe-aem-bundles-as-restful-webservices)相同, – VAr

+0

你應該小心繫統的負載。 JSON請求應該被緩存。 –

回答

3

AEM自帶Apache Sling,它允許您通過HTTP請求訪問JCR的內容。

DefaultGetServlet可以允許您使用json擴展名呈現JSON格式的內容。

例如:

http://localhost:4502/content/geometrixx-outdoors/en/men.infinity.json

返回以下JSON(縮短可讀性):

{ 
    jcr:primaryType: "cq:Page", 
    jcr:createdBy: "admin", 
    jcr:created: "Mon Jan 09 2017 14:44:46 GMT+1100", 
    jcr:content: { 
     jcr:primaryType: "cq:PageContent", 
     jcr:mixinTypes: [ 
      "cq:LiveSync" 
     ], 
    jcr:createdBy: "admin", 
    jcr:title: "Men's" 
} 

作爲AEM 6.1的,也有基於Siren一個更加用戶友好的API ;但它尚未完全完成。

http://localhost:4502/api.json/content/geometrixx-outdoors/en/men.html

返回以下JSON(縮短了可讀性):

{ 
    links: [ 
    { 
     rel: [ 
      "self" 
     ], 
     href: "http://localhost:4502/api.json" 
    }, 
    { 
     rel: [ 
      "assets" 
     ], 
     href: "http://localhost:4502/api/assets.json" 
    } 
    ], 
    class: [ 
     "core/services" 
    ], 
    properties: { 
     name: "api" 
    } 
} 

這些都是開箱即用的功能,但你總是可以創建自己的Sling Servlet揭露的內容,只要你喜歡。

1

如果無頭的話,您的意思是您是否可以使用AEM而不使用它來託管您的網站,那麼是的,它可以被用作Restful內容存儲庫,正如其他人所解釋的那樣。 AEM 6.1+對SPA有更多支持,因此您可能需要進行調查,而不是將其作爲內容存儲庫使用。

相關問題