在CQ的crx/de中,爲獲取數據或創建新節點,重新安排節點等而發出的每個請求都由http://localhost:6502/crx/server/crx.default提供服務。
我注意到的一件事是,刪除數據時,服務器發出一個POST請求,而不是DELETE請求,事實上,有效負載定義它是一個Delete請求,這似乎不是很有效RESTful。爲什麼在AEM中刪除節點的POST請求
有這種行爲的任何具體的原因是什麼?
在CQ的crx/de中,爲獲取數據或創建新節點,重新安排節點等而發出的每個請求都由http://localhost:6502/crx/server/crx.default提供服務。
我注意到的一件事是,刪除數據時,服務器發出一個POST請求,而不是DELETE請求,事實上,有效負載定義它是一個Delete請求,這似乎不是很有效RESTful。爲什麼在AEM中刪除節點的POST請求
有這種行爲的任何具體的原因是什麼?
我想這是因爲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
。出於同樣的原因,在複雜系統中使用DELETE
和PUT
往往是最小的。 (據我所見)。
AEM所依據的Apache Sling確實直接支持DELETE請求到您想要刪除的資源,而不是通過crx.default
。據我所知,這也是在AEM中啓用的。