Ich habe auf viele Links verwiesen, einschließlich der folgenden:
- Servicemodul. Wie werden die JSON-Daten mit Sitzungsinformationen zum Erstellen eines Knotens erstellt?
- GitHub - Erstellen eines Knotens mit Services 6.3 REST
Ich habe mehrere Möglichkeiten ausprobiert, um einen neuen Knoten auf einer Drupal-Site zu veröffentlichen, bin jedoch gescheitert. Ich habe ein Beispiel-CCK zum Speichern von Studentendaten mit Name, Alter, Geschlecht, Geburtsdatum erstellt und eine Liste hinzugefügt.
Ich habe das Modul Dienste (D7) installiert und konfiguriert und einen Dienstendpunkt bei Diensten erstellt.
Wie erwartet ist GET der einfachste Weg, um Details eines Knotens in JSON abzurufen. http://localhost/drupal/services/node
einfach alle Knoten aufgelistet.
Ich kann immer noch nicht herausfinden, wie die POST- Methode verwendet wird.
Ich möchte nach den Schülern suchen, deren Name John enthält . Ich habe es versucht
localhost/drupal/services/node&node[name]=john
. Ich habe das POST Man- Plugin für Chrome ohne Erfolg verwendet. Ich habe auch andere Möglichkeiten ausprobiert.Ich habe erfolglos versucht, einen neuen Schüler zur Site hinzuzufügen.
Kann mich jemand anleiten, obiges gut zu machen?
UPDATE:
Ich habe versucht, neue Knoten vom Typ Artikel hinzuzufügen . Es hat gut funktioniert. aber wenn ich versuche, Knoten des Typs Abteilung CCK hinzuzufügen, zeigt es " s: 22:" CSRF-Validierung fehlgeschlagen "; " Hier sind die Screenshots
Ich habe den Link https://drupal.org/node/2013781 durchlaufen
Ich folgte session = session_name = session_id, aber ich erhalte immer noch eine Fehlermeldung.
Antworten:
Hoffe das wird dir helfen,
Für Drupal 7
Benutztes Werkzeug:
HTTP-Anfragen
Für die HTTP-Anfragen benötigen Sie das Firefox-Add-On POSTER .
Zwei häufig verwendete Methoden für eine Anfrage-Antwort zwischen einem Client und einem Server sind:
Nachdem das Add-On heruntergeladen wurde. Öffnen Sie Firefox -> Extras -> Poster
Stellen Sie sicher, dass die Sitzungsauthentifizierung aktiviert ist . Nachdem die Dienste ordnungsgemäß konfiguriert wurden, sollten Sie sich anmelden , bevor Sie den Knoten erstellen . Einmal eingeloggt können Sie die Knoten erstellen.
Verwenden Sie für die Anmeldung die POST-Methode mit der URL " http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login"
Wenn es sich um einen gültigen Benutzer handelt , werden Benutzerdetails mit Sitzungs-ID und Name zurückgegeben . Wenn es nicht gültig ist, wird der Zugriff verweigert
Durch Verwendung des Sitzungsnamens und der ID im POST HEADER können neue Knoten erstellt werden
Nachdem Sie den HEADER hinzugefügt haben, müssen Sie eine HTTP-POST-Anforderung stellen und sicherstellen, dass der Benutzer über die Berechtigungen zum Erstellen eines Knotens verfügt.
Wenn der Knoten erstellt wurde, erhalten Sie die Antwort mit der Knotenverknüpfung
HINWEIS: Wenn Sie die Antwort in JSON erhalten möchten, sollten Sie .json immer am Ende der URL anhängen. zB http://XXXXXXXX.com/test/endpoint/user.json ODER http://XXXXXXXX.com/test/endpoint/node.json ODER http://XXXXXXXX.com/test/endpoint/user/user_id .json ODER http://XXXXXXXX.com/test/endpoint/node/node_id.json
quelle
Für Drupal 7 und Services 7.x-3.x
Schritt 1: Stellen Sie eine Post-Anfrage an
user.login
resource mit Ihrem Benutzernamen und Passwort.Wenn die Anmeldung erfolgreich ist, erhalten Sie ein Antwortobjekt mit 4 Eigenschaften:
Screenshot von Google Chrome Briefträger
Schritt 2: Stellen Sie eine Post-Anfrage an
node
mit 2 HeadernScreenshot von Google Chrome Briefträger
quelle
Wenn Sie das tun POST an die REST - API , dann werden Sie alles in setzen müssen POST - Daten , nicht zu URL . In Postman können Sie festlegen, dass die Anforderung gesendet werden soll,
x-www-form-urlencoded
und anschließend Ihre Datenwerte hinzufügen. Vergessen Sie nicht, Status, Benutzer-ID, Sprache, Typ, Titel und dann die zusätzlichen Werte hinzuzufügen . Die Ressourcen-URL sollte nur seinHOST/REST_API_PATH/node
.quelle