Уже сутки бьюсь и не могу добавить файл в поле файл в ноду! Если предварительно залить файл, получить его фид, то появляется возможность заменить уже приаттаченный в поле файл на новый запросом PUT на endpoint/node/"nodenumber" {"field_dl_file":{"und":[{"fid":999}]},"uid":1,"language":"und"}
Однако, если после для файла пустое, то добавить туда файл невозможно! Подозреваю, что делается это путём некоего запроса на endpoint/node/"nodenumber"/attach_file, но какого - неясно. Кто-то сталкивался с подобной проблемой? Как решали?
P.S. Есть где-то вменяемая документация с примерами запросов к этому модулю?
Комментарии
В самих исходниках модуля Services в файле resources/node_resource.inc есть описание вызова функции _node_resource_attach_file, там приведён пример web-формы, с помощью которой можно отправить файл на endpoint/node/«nid»/attach_file.
Только в текущей версии модуля 3.3 в этой функции допущена ошибка, не хватает кода, который учитывает обязательные настройки поля, в которое прикрепляется файл. Взять этот код можно из исходников текущей dev-версии. Я так сделал и прикрепление файла к существующей ноде теперь отлично работает.
И ещё. Для работы этого метода загрузки файлов необходимо в настройках SERVER Вашего endpoint-а поставить галочку на "multipart/form-data" для Request parsing.
Ну и, разумеется, перед использованием attach_file необходимо авторизоваться. Делается это тоже POST-посылом параметров username и password на endpoint/user/login. При этом в настройках SERVER endpoint-а надо поставить галочку на "application/x-www-form-urlencoded" для Request parsing.
Кстати, авторизацию (и многие другие возможности модуля Services) можно протестировать с помощью дополнения Firefox Poster, а вот загрузку файлов с его помощью, увы, не проверишь, т.к. имя поля, содержащего путь к загружаемому файлу - строгое (files[]) и какое оно в Poster - не известно.