2017-02-06 12 views
0

CQ/AEM에 대한 경험이 없지만 최단 거리에서 던졌습니다.CQ5/Adobe Experience Manager를 헤드리스로 사용할 수 있습니까?

나는 웹 프론트 엔드 (Ember.js/handlebars를 사용하여 제작)를 사용하여 웹 서비스를 호출하여 (예 : 얼마나 많은 영화를 보았는지) 적절한 콘텐츠 (예 : 웹 서비스는 CMS에서 노드 X를 조회하는 것을 알고 "모든 영화를 시청 해 주셔서 감사합니다!")를 복사하여 단일 JSON 문서로 복사합니다.

CMS에 RESTful API가있는 경우이 기능이 잘 작동합니다.

그러나 이제는 Adobe Experience Manager/CQ5를 CMS로 만들도록 요청 받았고 동일한 일이 발생했는지 알아야합니다.

나는 그렇게 생각하지 않습니다. 나는 CQ5이 컨텐츠 저장소로 하나 JCR/CRX를 사용하는 것을 알고 있지만 나는 이러한

AEM 6.2 JCR 오크를 사용 (사용 가능한 유일한 언어 수준의 API)를 웹 서비스로 노출되지 볼 수있는로부터의 약속 편안한 API.

짧은 질문에 : JCR 오크는 콘텐츠에 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은 HTTP 요청을 통해 JCR의 내용에 액세스 할 수있는 Apache Sling과 함께 제공됩니다.

DefaultGetServlet을 사용하면 json 확장자를 사용하여 JSON 형식의 콘텐츠를 렌더링 할 수 있습니다. (읽기 쉽 단축)

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

은 다음과 JSON을 반환합니다 : 예를 들어

AEM 6.1로

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

Siren을 기반으로 사용자에게 친숙한 API가 ; 그러나 아직 완전히 완료되지 않았습니다.

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

이이 OOTB 기능을하지만 당신은 항상 그러나 당신이 좋아하는 자신의 Sling Servlet 노출하는 콘텐츠를 만들 수 있습니다

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

은 (가독성을 위해 단축) 다음과 같은 JSON을 반환합니다.

1

사이트를 호스팅하는 데 사용하지 않고 AEM을 사용할 수 있는지 여부를 헤드리스 (headless)하지 않으면 다른 사람이 설명한대로 AEM을 안정된 콘텐츠 저장소로 사용할 수 있습니다. AEM 6.1+는 SPA에 대한 추가 지원을 제공하므로 콘텐츠 저장소로만 사용할 수있는 방법을 탐색하기보다는 조사하는 것이 좋습니다.