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

Adobe CQ-是否可以执行CURL命令?,curl,aem,Curl,Aem,我没有在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:3

我没有在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

Curl是一个命令行HTTP客户端,CQ基于apachesling框架,支持restfulhttp请求,因此答案是:是的,您可以使用Curl从CQ存储库中创建、读取、更新和删除内容。吊索文件提供了关于此主题的信息

请在下面找到一些例子:

创建新资源

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

Curl是一个命令行HTTP客户端,CQ基于apachesling框架,支持restfulhttp请求,因此答案是:是的,您可以使用Curl从CQ存储库中创建、读取、更新和删除内容。吊索文件提供了关于此主题的信息

请在下面找到一些例子:

创建新资源

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

是的,您可以使用cURL,但是,这并不意味着您应该在这个用例中使用cURL。cURL通常用于Jenkins、Bambor或同等产品的连续交付自动化,或者由puppet自动建立新服务器

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

如果您正在暴露卷曲,您需要考虑谁可以访问它,以及在什么身份验证级别。还请记住,您正在以明文形式发送管理员用户名和密码。至少,您应该使用SSL证书对请求进行身份验证


实现这一点的另一种方法是通过向sling servlet发送帖子。这样,您就可以验证通过的事务,并通过更标准的方法进行身份验证,从而提供更高程度的控制

是的,您可以使用cURL,但是,这并不意味着您应该在这个用例中使用cURL。cURL通常用于Jenkins、Bambor或同等产品的连续交付自动化,或者由puppet自动建立新服务器

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

如果您正在暴露卷曲,您需要考虑谁可以访问它,以及在什么身份验证级别。还请记住,您正在以明文形式发送管理员用户名和密码。至少,您应该使用SSL证书对请求进行身份验证

实现这一点的另一种方法是通过向sling servlet发送帖子。这样,您就可以验证通过的事务,并通过更标准的方法进行身份验证,从而提供更高程度的控制

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

如果这是正确的,您可以使用HTTP客户机,例如,它在CQ中是开箱即用的。ApacheSling集成测试代码广泛使用了这一点,例如,请参见下面的测试

您还可以在CQ中使用任何HTTP或REST客户端库,只要该库是OSGi友好的。对于其中一些用户来说,这很容易,因为它们是作为OSGi捆绑包提供的,而对于其他用户来说,则需要更多的初始组装。

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

如果这是正确的,您可以使用HTTP客户机,例如,它在CQ中是开箱即用的。ApacheSling集成测试代码广泛使用了这一点,例如,请参见下面的测试


您还可以在CQ中使用任何HTTP或REST客户端库,只要该库是OSGi友好的。对于其中一些产品来说,这很容易,因为它们是作为OSGi捆绑包提供的,而对于其他产品,则需要更多的初始组装。

我不同意“cURL通常用于连续交付自动化”,这只是其众多用途之一。是的,我同意cURL在CD之外还有其他用途,您是否认为使用它作为外部系统将数据推送到JCR中的方法是危险的?很高兴有人告诉我们不是这样,但我们一直认为它过于灵活,无法在生产环境中对外部系统开放。我原以为事务模型可以更大程度地控制数据输入的内容、位置和条件。如果您有一个接受HTTP请求的系统,那么这些请求是否来自浏览器、curl或任何其他工具都没有什么区别。服务器的内部访问控制机制决定了它是否安全。如果这样的服务器位于公共网络上,那么您必须小心您公开的服务器URL空间的哪些部分,这些部分通常使用CQ的dispatcher组件或类似工具进行控制。我不同意“cURL通常用于连续交付自动化”,这只是它的许多用途之一。是的,我同意在CCD之外还有其他用途,但是,您不认为使用它作为外部系统将数据推送到JCR中的方法是危险的吗?很高兴有人告诉我们不是这样,但我们一直认为它过于灵活,无法在生产环境中对外部系统开放。我原以为事务模型可以更大程度地控制数据输入的内容、位置和条件。如果您有一个接受HTTP请求的系统,那么这些请求是否来自浏览器、curl或任何其他工具都没有什么区别。服务器的内部访问控制机制决定了它是否安全。