Adobe CQ-是否可以执行CURL命令?

时间:2013-10-15 17:53:34

标签: curl cq5

我没有在CQ工作,但我正在与另一个使用CQ的团队合作,因此需要知道CQ是否支持REST命令(使用CURL完成下面的事情)?我需要通过HTTP请求从CQ调用外部REST Web服务。

注意:我已向CQ团队提出这个问题,但还没有得到答案,因此想到在这个论坛上查看..

curl -X PUT -H 'Content-type: application/json' -d '{"period": 300,"type": "crawl","start_time": "2011-03-18T12:10:32-0700","active": true}' http://localhost:8888/api/collections/collection1/datasources/8/schedule

3 个答案:

答案 0 :(得分:4)

Curl是一个命令行HTTP客户端,CQ基于Apache Sling框架,支持RESTful HTTP请求,因此答案是:是的,您可以使用curl从CQ存储库创建,读取,更新和删除内容。吊索文档提供comprehensive information关于此主题的内容。

请在下面找到一些例子:

创建新资源

curl -u admin:admin -Ftitle="some title" -Ftext="some content" http://localhost:4502/tmp/new_resource

以JSON或XML格式读取现有资源

curl -u admin:admin http://localhost:4502/tmp/new_resource.json
curl -u admin:admin http://localhost:4502/tmp/new_resource.xml

更新现有资源

curl -u admin:admin -Ftitle="new title" http://localhost:4502/tmp/new_resource

删除资源

curl -u admin:admin -X DELETE http://localhost:4502/tmp/new_resource

答案 1 :(得分:4)

如您所说“从CQ调用外部REST Web服务”,您似乎希望在CQ中运行的代码通过HTTP向另一台服务器发出请求。

如果这是正确的,您可以使用http://hc.apache.org/中的HTTP客户端,例如,它可以在CQ中开箱即用。 Apache Sling集成测试代码广泛使用它,例如参见https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests

下的测试

如果库是OSGi友好的,您也可以在CQ中使用任何HTTP或REST客户端库。对于其中一些,它非常容易,因为它们作为OSGi包提供,对于其他更多的初始组装是必需的。

答案 2 :(得分:0)

是的,您可以使用cURL,但是,它肯定不代表您应该使用此用例。 cURL通常用于Jenkins,Bamboo或同等版本的持续交付自动化,或者通过puppet自动化建立新服务器。

它旨在作为生产环境的管理工具,而不是从JCR接收/提供数据。

如果您要公开cURL,则需要考虑谁可以访问它以及身份验证级别。另请记住,您要以纯文本格式发送管理员用户名和密码。至少,您应该使用SSL证书来验证请求。

接近这个的另一种方法是通过一个帖子到一个吊索servlet。这样,您可以验证通过的事务,并通过更多标准方法进行身份验证,并为您提供更高程度的控制。