2016-10-25 3 views
0

Ich versuche, mehrere Knoten PATCH für einen Inhaltstyp zu erstellen. Derzeit bin ich in der Lage nur einen Knoten zu patchen:Drupal 8 REST PATCH auf mehreren Knoten

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

Ich möchte alle ‚FAQ‘ Inhaltstyp Knoten von anderen GET zu aktualisieren, die ich auf http://my_other_website_which_is_my_source.com/api/rest/all_faq_nodes

erzeugen kann, ist es möglich, das GET-Ergebnis hinzufügen nach --data-binär? Ich habe versucht, mehr Informationen auf Drupal-Seiten zu bekommen, leider ohne Glück.

Drupal Version: 8.2.1

Prost!

+0

Beachten Sie, dass PATCH per Definition nicht RESTful ist – Evert

Antwort

0

Ich stieß auf ein ähnliches Problem. Ich habe schließlich ein Rest-Plugin erstellt, um mehrere Knoten zu verwalten (erstellen oder aktualisieren).

Verwenden Sie zunächst die Drupal-Konsole, um ein benutzerdefiniertes Rest-Ressourcen-Plugin zu generieren. Meine Beispiele verwenden das POST-Verb.

%> Drupal erzeugen: Plugin: Rest: Ressource

Dann in @RestResource Abschnitt, Hinzufügen/Aktualisieren Sie die folgenden Anmerkungen:

serialization_class = ""

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

Seit der Serialisierung ation_class nicht angegeben ist, kann ein Array von Knoten in json Format übergeben, wie:

enter image description here

, die an die Post Funktion übergebenen Daten werden anstelle der Serialisierung Klassentyp normierter Form vorliegen; Sie erhalten also normalisierte Daten in einem zweidimensionalen Array (siehe Symfony Serialization Komponenten t für Details).

öffentliche Funktion Post ($ data) {...}

Sie können die Elemente von $ data iterieren (zweidimensionale Anordnung) und Konvertieren jedes Element (normalisierte Daten) an eine Drupal Entity \ Knoten unter Verwendung denormalize() -Funktion.

Sie können meine blog für Details besuchen. Ich hoffe das hilft.