Apache Sling:通过REST API访问版本

时间:2017-11-20 15:31:03

标签: jcr sling jackrabbit

我正在尝试在Sling中检索可版本化节点的版本历史记录。

我创建了一个可版本化的节点,签出,上传了一个新版本并将其签入。

curl -u admin:admin -T test.txt http://localhost:8080/apps/versions2
curl -u admin:admin http://localhost:8080/apps/versions2/test.txt -X POST -F"jcr:mixinTypes=mix:versionable"
curl -u admin:admin http://localhost:8080/apps/versions2/test.txt -X POST -F":operation=checkout"
curl -u admin:admin -T test.txt http://localhost:8080/apps/versions2/test.txt
curl -u admin:admin http://localhost:8080/apps/versions2/test.txt -X POST -F":operation=checkin"

但是,当我尝试按照this enhancement request的建议提取版本历史记录时,它无效。

curl -u admin:admin http://localhost:8080/apps/versions2/test.txt.V.tidy.json
{
"jcr:primaryType": "nt:file",
"jcr:mixinTypes": ["mix:versionable"],
"jcr:createdBy": "admin",
"jcr:versionHistory": "31d1e0e8-22b0-476d-b591-b7441073f0fc",
"jcr:predecessors": [],
"jcr:created": "Mon Nov 20 2017 13:31:47 GMT+0100",
"jcr:baseVersion": "00b9682c-9402-4c5f-a759-8f1837e55e35",
"jcr:isCheckedOut": "false",
"jcr:uuid": "0e1784aa-51c2-4901-b56d-89f8dcea9744"
}

我的计划B是从/jcr:system/jcr:versionStorage读取节点,但我不知道如何通过WebDAV API访问它。

1 个答案:

答案 0 :(得分:2)

version info servlet的配置策略设置为 REQUIRE ,这意味着在明确设置配置之前,此servlet不会处于活动状态。

所以你可以进入系统配置(http://localhost:8080/system/console/configMgr),搜索 Apache Sling Version Info Servlet ,点击并保存默认配置,而不是你能获得的版本该节点符合预期。