Службы 3 и ссылка на узел


Я работаю с модулем services 3 (D7) и вызываю метод Drupal из Java-клиента. Я могу войти в систему (и сохранить сеанс в файле cookie), и я могу создать простой узел.

Но я не могу установить поле ссылки на узел.

Чтобы найти способ сделать это, я сначала посмотрел на структуру узла (с полем ссылки) на моем сайте drupal:

 [field_presta_presta_suivi] => Array
    (
        [und] => Array
            (
                [0] => Array
                    (
                        [nid] => 43
                    )

            )

    )

Итак, в моем Java-клиенте я создал функцию для воспроизведения этой структуры:

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;
    }

Это функция используется для создания хэш-карты, которая будет добавлена в параметр сервиса "node.create".

Эта функция работает с полем ссылки пользователя (которое имеет ту же структуру узла), но когда я использовал его для ссылки на узел, сервер вернул "Неприемлемо".

Я уже потратил на это много времени и не нашел ни одного примера или подобного случая, поэтому вот мой вопрос:

Как использовать службы 3 (D7) для создания узла с полем ссылки на узел?

 7
Author: Free Radical, 2011-07-08

2 answers

Ресурсы Служб по умолчанию все довольно разбиты, потому что они основаны на имитации фактической отправки формы (бла!). Я рекомендую вместо этого использовать те, которые предоставляются сущностью Услуг.

 2
Author: Damien Tournoud, 2013-04-13 09:03:06

Нет необходимости искать другой модуль, следующая структура json поможет вам создать поле ссылки на узел,

"field_specialization": 
{
  "und": 
       {
         "value":"10" 
       }
}
 0
Author: sandy, 2014-01-21 07:37:21