Ich habe Probleme, Dienste dazu zu bringen, einen POST an /comment.json zu erkennen. Ich habe ein ähnliches Problem beim Erstellen von Knoten.
Folgendes ist der Fehler, den ich erhalte: HTTP / 1.1 406 Nicht akzeptabel: Fehlender erforderlicher Argumentkommentar
Diese Nachricht stammt aus der Datei: /services/server/rest_server/includes/RESTServer.inc Insbesondere die Zeilen:
elseif (!isset($info['optional']) || !$info['optional']) {
return services_error(t('Missing required argument !arg', array(
'!arg' => $info['name'],
)), 406);
}
Grundsätzlich scheint das Argument "Kommentar" zu fehlen (und es ist nicht optional).
Dies ist eines von vielen JSON-Elementen, die ich ihm gegeben habe (einen Kommentar an Knoten 8801 senden).
{name:"test",language:"und",cid:"0",pid:"0",uid:"17593",nid:"8801",
comment:{subject:"Subject of the comment, if not entered it will be auto-generated",
comment_body:
{und:[
[{value:"value of the field comment in the comment, remember that in D7 we can create fields for comments too", format: "full_html"}]
]}}}
Es ist vollkommen gültig (basierend auf anderen Online-JSON-Prüfungen). Es stimmt auch mit dem überein, was ich in den Testbeispielen für Services unter /services/test/functional/ServivesResourceCommentTests.test sehe
Ich erhalte jedoch immer die gleiche Fehlermeldung. Dies scheint ähnlich zu sein: Drupal 7 Services JSON-Knotenobjekt
das ist auch ungelöst. Kann mir jemand bei der richtigen JSON-Formatierung helfen? Eigentlich möchte ich es nur so weitergeben wie:
{ nid : 8081 , uid : 17593 ,comment:{comment_body:"test",subject:"test"}}
Meine http-Header scheinen in Ordnung zu sein und Benutzer / Login hat gut funktioniert.
Kannst du mir sagen, unter welcher URL du diesen JSON-String posten würdest? Ich habe im gesamten Web nach einer Dokumentation gesucht, wie mit Kommentaren 3 ein Kommentar zu einem Knoten erstellt werden kann. Die Dokumentation zu diesem Modul fehlt vollständig. Ich habe versucht zu posten:
example.com/api/node/{nid}/comments.json
example.com/api/comment.json
example.com/api/comment/create.json
Nichts scheint zu funktionieren. Ich erhalte immer "404 nicht gefunden: Controller konnte nicht gefunden werden"
EDIT: Sobald ich dies gepostet habe, habe ich es zum Laufen gebracht. Wenn es jemand anderem hilft, postest du deine JSON-Zeichenfolge an:
example.com/api/comment.json
Wenn Sie Poster zum Testen verwenden, müssen Sie den Inhaltstyp auf application / json einstellen. Stellen Sie bei Verwendung von jquery sicher, dass Sie den Datentyp 'json' festlegen.
quelle
Hier einige Beispiele zum Erstellen und Aktualisieren von Knoten und Kommentaren im folgenden Format:
Knoten erstellen
q = endpoint / node.json
{"type": "article", "title": "t8yZUfX2it", "language": "und"}
Knotenaktualisierung
q = Endpunkt / Knoten / 123.json
{"node": {"nid": "123", "title": "9AjrXJhWMI", "language": "und"}}
Kommentar erstellen
q = endpoint / comment.json
{"subject": "liJmJfpqMX", "comment_body": {"und": [{"value": "9DyaNZi3lA"}]}, "nid": "18"}
Kommentar aktualisieren
q = Endpunkt / Kommentar / 456.json
{cid: 456, "subject": "hzU27R6daE", "comment_body": {"und": [{"value": "BqZU5DwArD"}]}, "nid": "18"}
quelle
Ich hatte ähnliche Probleme, selbst als ich nur mit dem Firefox-Plugin-Poster getestet habe. Es stellt sich heraus, dass es ganz einfach die zusätzlichen Leerzeichen und einige andere einfache Formatierungen (wie z. B. Escapezeichen) waren, die dies taten. Hier ist eine Liste, was in meinen eigenen Tests für das funktioniert, was ich brauchte:
CREATE USER WORKS = Endpunkt / Benutzer
LOGIN WORKS = Endpunkt / Benutzer / Login
CREATE FILE WORKS = Endpunkt / Datei
CREATE NODE WORKS = Endpunkt / Knoten
quelle