多个节点上的Drupal 8 REST PATCH

时间:2016-10-25 13:22:29

标签: json rest curl drupal patch

我正在尝试为内容类型创建多个节点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更新所有'faq'内容类型节点

是否可以将GET结果添加到--data-binary? 我试图在Drupal网站上获取更多信息,但遗憾的是没有运气。

Drupal版本:8.2.1

干杯!

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我最终创建了一个休息插件来处理多个节点(创建或更新)。

首先,使用drupal控制台生成自定义休息资源插件。我的例子使用POST动词。

%&gt; drupal generate:插件:rest:resource

然后,在@RestResource部分中,添加/更新以下注释:

serialization_class =“”

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

由于未指定serialization_class,您可以传递json格式的节点数组,例如:

enter image description here

传递给post函数的数据将是规范化形式而不是序列化类类型;因此,您将在二维数组中得到标准化数据(有关详细信息,请参阅 Symfony Serialization componen )。

公共职能职位($ data){...}

您可以遍历$ data(二维数组)的元素,并使用denormalize()函数将每个元素(规范化数据)转换为Drupal Entity \ Node。

您可以访问我的blog了解详细信息。我希望这会有所帮助。