为什么在AEM中删除节点的POST请求

问题描述:

在CQ的crx/de中,为获取数据或创建新节点,重新安排节点等而发出的每个请求都由http://localhost:6502/crx/server/crx.default提供服务。
我注意到的一件事是,删除数据时,服务器发出一个POST请求,而不是DELETE请求,事实上,有效负载定义它是一个Delete请求,这似乎不是很有效RESTful为什么在AEM中删除节点的POST请求

POST请求 POST Request

有效载荷说删除节点 payload

有这种行为的任何具体的原因是什么?

我想这是因为REST vs RESTful的不同。 恕我直言,RESTful意味着您尝试遵守REST原则,但是您不强制自己完全符合要求,实际原因可能最好由ADOBE解决。

SlingPostServlet可用于修改存储库内容并获取内容修改。

这不是一个(好的)休息实现 - 说这是事实,它要求 POST http://localhost:6502/crx/server/crx.default而不是像POST http://localhost:6502/content/mysite/jcr:content/node1/jcr:content

DELETE应该是幂等的。所以在需要服务器端逻辑处理并且对于任何数量的请求输出不能相同的情况下,首选POST。出于同样的原因,在复杂系统中使用DELETEPUT往往是最小的。 (据我所见)。

AEM所依据的Apache Sling确实直接支持DELETE请求到您想要删除的资源,而不是通过crx.default。据我所知,这也是在AEM中启用的。