2016-10-25 3 views
0

Я пытаюсь создать несколько узлов PATCH для типа контента. В настоящее время я могу пропатчить один узел только:Drupal 8 REST PATCH на нескольких узлах

curl --include \ 
--request PATCH --user username:password \ 
--header 'Content-type: application/hal+json' \ 
--header 'X-CSRF-Token: <obtained from http://my_website.com/rest/session/token>' \ 
http://my_website.com/node/1862?format=hal_json \ 
--data-binary '{"_links":{"type":{"href":"http://my_website/rest/type/node/faq"}},"title":[{"value":"Example node title UPDATED!"}],"type":[{"target_id":"faq"}]}' 

Я хотел бы, чтобы обновить все узлы типа контента «чаво» из других ГЭТ, которые я могу генерировать на http://my_other_website_which_is_my_source.com/api/rest/all_faq_nodes

Можно добавить результат GET в -data-binary? Я пытался получить дополнительную информацию о сайтах Drupal, к сожалению, к сожалению.

версия Drupal: 8.2.1

Ура!

+0

Обратите внимание, что PATCH - это определение не RESTful – Evert

ответ

0

У меня возникла аналогичная проблема. Я закончил создание плагина для отдыха для обработки нескольких узлов (создание или обновление).

Во-первых, используйте консоль drupal для создания настраиваемого плагина ресурсов для отдыха. В моих примерах используется POST-глагол.

%> друпал генерировать: Plugin: отдых: ресурс

Затем в разделе @RestResource, добавить/обновить следующие аннотации:

serialization_class = ""

https://www.drupal.org/link-relations/create "="/api/multinodespost

С сериализацией ation_class не указан, вы можете передать массив узлов в формате JSON, такие как:

enter image description here

Данные, передаваемые в функцию пост будет нормализованной формы вместо типа класса сериализации; поэтому вы получите нормализованные данные в двумерном массиве (см. Компонент Serialization Symfony t для деталей).

общественная функция пост ($ данных) {...}

Вы можете перебирать элементы $ данных (двумерный массив) и преобразовать каждый элемент (нормализованные данные) к Drupal Entity \ узел с помощью denormalize().

Для получения подробной информации посетите мой blog. Надеюсь, это поможет.