有什么方法可以在不使用 OSGI 服务的情况下获取 CRX 内容?我正在寻找一个用例来实现网站的顶部导航,该网站需要通过 Angular JS 等 javascript 框架读取页面名称及其属性。
问问题
353 次
2 回答
1
您可以将其作为 JSON 或 XML 获取,使用扩展名 XML 或 JSON 对路径进行服务器调用。JSON 允许您基于深度的选择器沿着树层次结构向下移动,不确定它是否与 XML 相同。
/my/page/path.xml
或者/my/page/path.<depth>.json
,您可以从请求 URI 中获取主机名和端口详细信息,以生成数据调用的完整 URL。
于 2016-09-08T13:46:38.293 回答
0
我建议您使用 sling 提供的以下 JSON API 来完成获取页面名称及其属性的任务。
首先要爬取给定路径下的所有页面,您需要使用 .pages.json 选择器。例如,要获取 /content/company/en_US 的所有子页面,请执行 JSON GET
HTTP GET <Host>/content/company/en_US.pages.json
接下来对于上面 GET 调用返回的每个路径,你需要抓取页面的 _jcr_content.json
(例如)
HTTP GET <Host>/content/company/en_US/home/_jcr_content.json
上面的 JSON 调用应该为您提供此特定页面的所有页面属性。
请注意:上述方法是通用的,可以应用于托管在 Sling/AEM 中的任何 JCR 路径。此外,由于安全规则可能会阻止 JCR 爬网,通常您无法在发布者环境中获得此级别的 JCR 访问权限。希望这可以帮助
于 2016-09-08T14:05:00.770 回答