Ich arbeite mit den Moduldiensten 3 (D7) und rufe die Drupal-Methode von einem Java-Client aus auf. Ich kann mich anmelden (und die Sitzung im Cookie behalten) und einen einfachen Knoten erstellen.
Ich kann jedoch kein Knotenreferenzfeld festlegen.
Um den Weg zu finden, habe ich zuerst die Knotenstruktur (mit dem Referenzfeld) in meiner Drupal-Site betrachtet:
[field_presta_presta_suivi] => Array
(
[und] => Array
(
[0] => Array
(
[nid] => 43
)
)
)
Also habe ich in meinem Java-Client eine Funktion erstellt, um diese Struktur zu reproduzieren:
public static HashMap addReferenceField(String field, String language, String type_ref,Object value, HashMap node, int delta ){
HashMap f = new HashMap();
HashMap p = new HashMap();
Object[] i = new Object[delta+1];
HashMap val = new HashMap();
val.put(type_ref, value);
i[delta] = val;
p.put(language, i);
f.put(field, p);
return f;
}
Mit dieser Funktion wird eine HashMap erstellt, die dem Parameter des Dienstes 'node.create' hinzugefügt wird.
Diese Funktion funktioniert mit einem User Refence-Feld (das dieselbe Knotenstruktur aufweist), aber als ich es als Knotenreferenz verwendet habe, hat der Server "Nicht akzeptabel" zurückgegeben.
Ich habe bereits viel Zeit damit verbracht und kein Beispiel oder einen ähnlichen Fall gefunden, daher hier meine Frage:
Wie können Sie mit Services 3 (D7) einen Knoten mit einem Knotenreferenzfeld erstellen?
Antworten:
Die Standardressourcen von Services sind alle ziemlich kaputt, da sie auf der Simulation einer tatsächlichen Formularübermittlung beruhen ( bla! ). Ich empfehle stattdessen die von Services Entity bereitgestellten .
quelle
Sie müssen sich nicht für ein anderes Modul entscheiden. Die folgende JSON-Struktur hilft Ihnen beim Erstellen eines Knotenreferenzfelds.
quelle