是否可以将变量放入 sling servlet 内的资源路径中?

2024-02-18

我们正在尝试为外部端点提供一个干净的 URI 结构,以从 CQ5 中提取 json 信息。

例如,如果您想获取有关特定用户历史记录的信息(假设您拥有权限等),理想情况下我们希望端点能够执行以下操作:

/bin/api/user/abc123/phone/555-klondike-5/history.json

在 URI 中,我们将指定 /bin/api/user/{username}/phone/{phoneNumber}/history.json,以便很容易利用调度程序使缓存更改等无效,而无需使大量缓存信息无效。

我们想使用 sling servlet 来处理请求,但是,我不知道如何将变量放入路径中。

如果有来自 JaxRS 的 @PathParam 之类的东西添加到吊索路径变量中,那就太好了,但我怀疑它不可用。

我们想到的另一种方法是使用选择器来识别何时访问 api,因此可以从路径返回我们想要的任何内容,但这需要一个单一的 sling servlet 来处理所有请求,所以我对这种方法并不满意,因为它将许多不相关的代码粘合在一起。

任何对此的帮助将不胜感激。


UPDATE:

如果我们要使用 OptingServlet,然后在 Accepts 函数中放入一些逻辑,我们可以堆叠一系列 sling Servlet,并使用正则表达式从路径做出接受决策。

然后在执行期间,可以解析路径本身以获取变量。


如果您提供的数据来自 JCR 存储库,则最好按照您想要的 URL 来构建数据,这是使用 Sling 执行操作的推荐方法。

如果数据是外部的,您可以创建一个自定义的 Sling ResourceProvider,将其挂载在 /bin/api/user 路径上,并根据路径的其余部分获取或生成相应的数据。

Sling 测试套件的 PlanetsResourceProvider 是一个简单的示例,请参阅http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/ http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/

Sling 资源文档位于https://sling.apache.org/documentation/the-sling-engine/resources.html https://sling.apache.org/documentation/the-sling-engine/resources.html记录通用资源解析机制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将变量放入 sling servlet 内的资源路径中? 的相关文章

  • CQ5:继承/扩展对话框

    作为参考 我在 CQ5 5 我很好奇是否有任何方法可以扩展继承的对话框 而不覆盖它的父对话框 例如 具有如下结构 base page template dialog title description inerited from base
  • 触摸 UI 对话框中的默认值 - AEM/CQ

    对于经典 UI 有一个选项可以设置defaultValue对于字段 当用户拖动组件后第一次打开对话框时 会向用户显示该字段 如果用户清除对话框中的值并保存 则在编辑对话框时 字段的值不会再次显示 对于触摸 UI 对话框 找不到等效项defa
  • 在一个 OSGi 实例中部署多个捆绑版本

    我在 CQ 中部署了三个应用程序 它们都依赖于一个捆绑包 例如 核心 核心正在经历重大改造 需要定义所有三个应用程序对不同版本核心的依赖关系 例如 A 将依赖于 core 1 0 B 将依赖于 core 1 5 C 将依赖 core 2 0
  • 将 CQ5 组件设置为可编辑或不可编辑

    如果我想设置 cq5 组件在页面 A 中可编辑 但在页面 B 中不可编辑 是否可以 例如 在页面 A 我有 C 组件 我们允许作者打开对话框并编辑组件 但我们不允许作者打开对话框来编辑页面 B 上的组件 C 我尝试研究 cq EditCon
  • CQ5 中的 标签被替换为 标签

    我在用着富文本编辑器 with 杂项工具插件来编辑我的网站中的文本 但是当我打开 HTML 编辑器并创建这样的东西时 p strong Strong text strong p CQ立即将其重写为 p b Strong text b p 是
  • 我应该在关闭资源解析器之前关闭会话吗

    我有简单的服务 让我们使用 resourcesResolver 和 session 来实现一些逻辑 Component immediate true Service value ServiceInterface class public c
  • AEM 如何解析 JSON 扩展?

    在 CQ 中 如果我请求诸如localhost 4502 content geometrixx en json 我会获取 JSON 格式的节点信息 这同样适用于 XML 扩展 我的问题是 如果URL扩展名是 那么节点信息以JSON格式呈现是
  • 如何为 Sling 资源实现自定义 AdapterFactory?

    Adobe AEM 软件提供了几个类 它们可以采用 apache Sling 资源并将其适应另一个类 如下所示 Page page resource adaptTo Page class 要将此语法与您编写和控制的类一起使用 这可以归结为简
  • Sling 重写器的工作原理说明

    我想了解 sling url 重写是如何工作的 我正在关注这个网址 http www cognifide com blogs cq multidomain cq mappings and apache configuration http
  • 在页面激活上启动工作流程,而无需激活 CQ5 中的页面

    每当内容作者在页面上单击 激活 时 我都需要调用工作流程 然后 工作流将向管理员发送通知 然后管理员继续激活该页面 让我更详细地解释一下 这有 2 部分 i 每当内容作者完成页面修改后 他就会继续单击 激活页面 来自 sidekick 或站
  • AEM Scheduler 的配置发生变化吗?

    我正在尝试为我的项目需求实现简单的调度程序 我的项目正在使用Adobe AEM 截至目前 我浏览了 Adob e 网站并尝试实现所提供的给定示例 但没有一个更新我的error log file package sling docu exam
  • javax.jcr.nodetype.ConstraintViolationException:没有匹配的属性定义:PROPERTY

    当我尝试为 JCR 节点设置属性时 出现错误 javax jcr nodetype ConstraintViolationException 没有匹配的属性定义 PROPERTY 我是 cq5 的新手 请问有人可以帮我解决这个错误吗 在jc
  • 如何将“where not”添加到 QueryBuilder 查询

    我想搜索整个内容树 但不搜索基础上具有 不搜索 属性的特定树 The 查询生成器 API http dev day com docs en cq 5 4 dam customizing and extendingcq5dam query b
  • AEM 6 对话框中有条件显示/隐藏字段

    我正在使用简单的创作对话框构建一个相对简单的 AEM 组件 对话框的顶部是一个选择字段 当此选择字段设置为特定项目时 我希望对话框中的某些字段消失 我研究了 Foundation Carousel 组件的实现 它使用cq dialog dr
  • 是否可以将变量放入 sling servlet 内的资源路径中?

    我们正在尝试为外部端点提供一个干净的 URI 结构 以从 CQ5 中提取 json 信息 例如 如果您想获取有关特定用户历史记录的信息 假设您拥有权限等 理想情况下我们希望端点能够执行以下操作 bin api user abc123 pho
  • 如何在使用 X 类型浏览字段浏览时隐藏某些路径?

    在我的组件对话框中 我使用browsefieldXType 使用户能够浏览页面树并选择页面
  • 我们如何在 CQ5 中定义全局属性

    我的要求是拥有一个具有可创作属性的全局页眉和页脚 因此 如果我们更新一页上的属性 它应该会反映在所有页面上 在 CQ5 中实现这一目标的最佳方法是什么 ACS AEM Commons 现在支持此功能 无需使用 iparsys 共享组件属性
  • Maven 无法找到 AEM 原型

    我已经开始解决这个问题很长时间了 我正在处理 Adob e wknd 项目 但我无法通过这个命令 并且大部分工作都是基于它构建的 mvn archetype generate DarchetypeGroupId com adobe gran
  • 通过sightly访问特定资源中的属性

    我想访问资源中的特定属性 主要资源有两个子资源 应用程序位于第一个资源中 我想从老二那里得到一份财产 我能找到类似的东西吗 resource parent child 1 valueMap title Thanks 首先 请注意孩子的顺序可
  • 如何在多字段中使用富文本(在 CQ5 对话框中)? (防止“this.el.dom未定义”错误)

    我创建了一个自定义组件 并尝试使用 RTE xtype richtext 在我的对话框中的多文件中 现在 当我尝试删除项目时 或者在关闭并重新打开对话框后添加另一个项目时 该对话框既不会关闭 也不会使用 确定 按钮保存数据 对话框 xml

随机推荐

Powered by Hwhale