【问题标题】:Exposing CQ content as a restful webservice将 CQ 内容公开为 RESTful Web 服务
【发布时间】:2015-09-10 19:19:41
【问题描述】:

我们面临一个场景,我们需要公开我们的 CQ 内容(如 XML 或 JSON)以充当集成点。 任何实现这一点的指针都会有所帮助。

【问题讨论】:

标签: aem restful-url jcr


【解决方案1】:

一切都很满意! 您可以简单地获得每个节点的 json 输出,但我猜您可能想实现一个自定义 servlet 来满足服务器的特定要求。 试试这个:

http://192.168.56.56:4503/content/geometrixx-outdoors/en/men/coats.infinity.json http://192.168.56.56:4503/content/geometrixx-outdoors/en/men/coats.3.json

查看sling docs 并了解 sling 如何解析资源(sling 备忘单)

【讨论】:

  • 是否可以在 CQ 中创建自定义 Web 服务(遵循其余原则)以向外部用户公开内容?
【解决方案2】:

AEM 中的内容可以通过多种方式提供给最终用户,例如 html 页面、PDF、xml、json。

Sitemap.xml 是类似的内容之一。您可以创建自定义的 RESTful API 来从 JCR 存储库中读取内容,将它们放入所需的格式(xml/json 或其他格式)并将其公开给最终用户。正如@chrysler 所说,请查看sling docs 了解更多信息。

【讨论】:

    【解决方案3】:

    在您的组件中编写一个选择器 jsp(json.html.jsp) 并调用您的服务方法,该方法将根据您的需要返回 JSON。

    所以你的请求 URL 与选择器说 ../home.json.html 将返回所需的 json 输出。

    注意:确保在不覆盖 cq 默认 json 调用时。例如:当您的请求 URL 类似于 ../home.json 并且您的选择器 jsp 是 json.jsp 时,这将覆盖开箱即用的 json 调用,您会发现创作对话框无法正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多