我正在尝试为内容类型创建多个节点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
干杯!
答案 0 :(得分:0)
我遇到了类似的问题。我最终创建了一个休息插件来处理多个节点(创建或更新)。
首先,使用drupal控制台生成自定义休息资源插件。我的例子使用POST动词。
%&gt; drupal generate:插件:rest:resource
然后,在@RestResource部分中,添加/更新以下注释:
serialization_class =“”
https://www.drupal.org/link-relations/create“=”/ api / multinodespost
由于未指定serialization_class,您可以传递json格式的节点数组,例如:
传递给post函数的数据将是规范化形式而不是序列化类类型;因此,您将在二维数组中得到标准化数据(有关详细信息,请参阅 Symfony Serialization componen )。
公共职能职位($ data){...}
您可以遍历$ data(二维数组)的元素,并使用denormalize()函数将每个元素(规范化数据)转换为Drupal Entity \ Node。
您可以访问我的blog了解详细信息。我希望这会有所帮助。