2016-10-25 10 views
0

コンテンツタイプに複数のノードPATCHを作成しようとしています。現在、私は一つのノードのみにパッチを適用することができる午前:私はhttp://my_other_website_which_is_my_source.com/api/rest/all_faq_nodes複数のノードでDrupal 8 REST PATCH

に生成することができ、他のGETからすべての「よくある質問」のコンテンツタイプのノードを更新したいと思います

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"}]}' 

はGETの結果を追加することが可能です - データ - バイナリ? 私は残念なことに運がないDrupalサイトの詳細を取得しようとしていました。

Drupalバージョン:8.2.1

乾杯!

+0

PATCHは定義ごとにRESTfulではありません – Evert

答えて

0

同様の問題が発生しました。私は複数のノード(作成または更新)を処理するための残りのプラグインを作成しました。

まず、drupal consoleを使用して、カスタムの残りのリソース・プラグインを生成します。私の例では、POST動詞を使用しています。

%が> Drupalの生成:プラグイン:残り:リソース

そして、@RestResourceセクションで、以下のアノテーションを更新/追加:

serialization_class = ""

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

serializ ation_classは、次のようなJSON形式でノードの配列を渡すことができ、指定されていない。代わりに、シリアライゼーションクラスタイプの正規化された形式のものであろうポスト関数に渡さ

enter image description here

データ。つまり、正規化されたデータは2次元配列になります(詳細については、Symfony Serializationコンポーネントを参照してください)。

パブリック関数ポスト($データ){...}

あなたは$データ(2次元配列)の要素を反復処理することができ、使用Drupalのエンティティ\ノードへの各要素(正規化されたデータ)に変換denormalize()関数

私の詳細はblogをご覧ください。私はこれが役立つことを願っています

関連する問題