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

 李波2602884584 发布于 2023-02-05 12:22

我们正在尝试为外部端点提供干净的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之类的东西添加到sling路径变量会很棒,但我怀疑它不可用.

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

任何帮助都将不胜感激.


更新:

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

然后在执行期间,可以为变量解析路径本身.

1 个回答
  • 如果您提供的数据来自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 /

    https://sling.apache.org/documentation/the-sling-engine/resources.html上的Sling资源文档记录了一般资源解析机制.

    2023-02-05 12:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有