it-swarm.com.de

Einrichten Drupal 8 REST Post Request

Ich habe Probleme beim Senden einer POST -Anforderung zum Erstellen eines Knotens mit Drupal 8 Core REST. Hier sind die Schritte, die ich mehrmals durchlaufen habe. Beachten Sie, dass diese Schritte sind bemüht, ein funktionierendes Beispiel zu erstellen. Ich bin noch nicht besorgt über die Auswirkungen auf die Sicherheit.

  1. Installieren Sie die neueste Version von drupal 8
  2. Aktivieren Sie alle zentralen Webdienstmodule (HAL, HTTP-Basisauthentifizierung, RESTful Web Services, Serialisierung).
  3. Gehen Sie zur Berechtigungsseite. Suchen Sie nach RESTful Web Services-Berechtigungen und erlauben Sie allen Benutzern das Löschen, Abrufen, Patchen und Posten. Suchen Node Artikelberechtigungen, Ermöglichen das Erstellen, Löschen und Bearbeiten für alle Benutzer.
  4. Starten Sie den Dev HTTP Client in Chrome. Geben Sie die folgende Anfrage ein:

enter image description here Nachdem ich auf Senden geklickt habe, erhalte ich die folgende Nachricht, die meiner Meinung nach eine 201 und keine 200 sein sollte, wenn ein Knoten erfolgreich erstellt werden sollte. Ich denke, der Teil REST funktioniert), ich kann nur nicht herausfinden, wie man POST, um einen Knoten zu erstellen) erhält.

enter image description here

Ich habe Probleme beim Finden von Dokumentationen zum Erstellen von Post-Anfragen an Drupal 8 REST. Einblick in die Erstellung dieser Anfragen, damit Drupal kann sie erfolgreich analysieren) sehr hilfreich.

6
Emanegux

Ich habe die Lösung zum (identischen) Problem auf drupal.org veröffentlicht: https://www.drupal.org/node/2472451#comment-9903259 Siehe auch den in diesem Kommentar angehängten Screenshot des Dev HTTP-Clients .

Grundsätzlich sind in Ihrem Beispiel einige Dinge falsch:

  • endpunkt ist/entity/node
  • accept-Header "application/json" hinzufügen
  • cSRF-Token hinzufügen (kann über/rest/session/token angefordert werden)
1
askibinski

Da ich immer noch auf viele 403 Forbidden Fehler gestoßen bin, fasse ich hier meine Gesamtlösung zusammen (Drupal 8.0.1):

1.) Setup & Konfiguration

Aktivieren Sie alle zentralen Webdienstmodule (HAL, HTTP-Basisauthentifizierung, RESTful Web Services, Serialisierung)

Aktivieren Sie relevante Berechtigungen für RESTful Web Services und zum Erstellen der relevanten Knoten.

2.) Holen Sie sich ein CSRF-Token:

GET http://your-drupal8/rest/session/token

3.) POST, um einen neuen Knoten zu erstellen

POST http://your-drupal8/entity/node?_format=hal+json

Beachten Sie, dass die URL für POST] eher /entity/node Als /node Zu sein scheint.

Überschriften:

Authorization: Basic QWRt...
X-CSRF-Token: zCf...

Daten

{
"title": [
  { "value": "atest2" }
],
"type": [
  { "target_id": "article" }
],
"_links": {
  "type": { "href": "http://your-drupal8/rest/type/node/article" }
}
}
6
sleidig

Ich habe das Originalmodul gegabelt und diese Fehler- und Pull-Anfrage behoben. Ich hoffe, diesen Zweig zu akzeptieren. Sie können es unter https://github.com/setali/drupal_cors herunterladen

0
user3000253