2016-03-09 1 views
1

В crx/de CQ каждый запрос, созданный для получения данных или для создания новых узлов, переупорядочивающих узлов и т. Д., Обслуживается http://localhost:6502/crx/server/crx.default.
Одна вещь, которую я заметил, это то, что для удаления данных запрос POST делается на сервере вместо запроса DELETE, а infact полезная информация определяет, что это запрос на удаление, который не выглядит очень RESTful.Почему POST-запрос на удаление узла в AEM

POST ЗАПРОС POST Request

ПОЛЕЗНЫЕ говорят УДАЛИТЬ Узел payload

есть ли конкретная причина такого поведения?

ответ

1

Я думаю, это из-за разницы REST vs RESTful. IMHO RESTful означает, что вы пытаетесь придерживаться принципов REST, но вы не заставляете себя быть полностью совместимым, на реальные причины лучше всего ответить ADOBE.

Существует SlingPostServlet, который может быть использован для изменения содержимого репозитория и используется для модификации контента.

1

Это не реализация (хороший) отдых - говорит о том, что он запрашивает POST http://localhost:6502/crx/server/crx.default, а не что-то вроде POST http://localhost:6502/content/mysite/jcr:content/node1/jcr:content.

DELETE Предполагается, что идемпотент. поэтому в сценариях, где требуется логическая обработка на стороне сервера, и вывод не может быть одинаковым для любого количества запросов, предпочтительнее POST. использование DELETE и PUT имеет тенденцию быть минимальной в сложных системах по той же причине. (насколько я видел).

1

Apache Sling, на котором основан AEM, поддерживает запросы DELETE непосредственно к ресурсу, который вы хотите удалить, вместо перехода через crx.default. Насколько я знаю, это также включено в AEM.

Смежные вопросы