Я сослался на множество ссылок, включая следующие:
- Сервисный модуль. Как построить данные JSON с информацией о сеансе для создания узла?
- GitHub - Создание узла с использованием Сервисов 6.3 REST
Я попробовал несколько способов ПОСТАВИТЬ новый узел на сайт Drupal, но мне не удалось. Я создал образец CCK для хранения данных о студентах с именем, возрастом, полом, DOB и добавил список.
Я установил и настроил модуль служб (D7) и создал конечную точку службы в службах.
Как и ожидалось, GET - это самый простой способ получить детали узла в JSON. http://localhost/drupal/services/node
просто перечислил все узлы.
Я до сих пор не могу понять, как использовать метод POST .
Я хотел бы найти студентов, чье имя содержит Джон . Я попробовал
localhost/drupal/services/node&node[name]=john
. Я использовал плагин POST Man для Chrome без успеха. Я также попробовал некоторые другие способы.Я пытался добавить нового студента на сайт безуспешно.
Кто-нибудь может подсказать мне, чтобы вышеперечисленное работало нормально?
ОБНОВИТЬ :
Я попытался добавить новые узлы типа статьи . Работало нормально. но когда я пытаюсь добавить узлы типа Отдел CCK Он показывает « s: 22:« Проверка CSRF не удалась »; « Вот снимки экрана
Я перешел по ссылке https://drupal.org/node/2013781.
Я следовал за session = session_name = session_id, но я все еще получаю ошибку.
Ответы:
Надеюсь, что это поможет вам,
Для Drupal 7
Используемые инструменты:
HTTP-запросы
Чтобы сделать HTTP-запросы, вам нужно использовать надстройку Firefox POSTER .
Два часто используемых метода для запроса-ответа между клиентом и сервером:
После того, как дополнение загружено. Откройте Firefox -> Инструменты -> Плакат
Убедитесь, что включена аутентификация сеанса . После правильной настройки Сервисов , перед созданием узла необходимо войти в систему . После входа в систему вы можете создавать узлы.
Для входа используйте метод POST, с URL-адресом, таким как - http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login
Если это действительный пользователь, он вернет данные пользователя с идентификатором сеанса и именем . Если он недействителен, он вернет Доступ запрещен
Используя имя и идентификатор сеанса в заголовке POST, мы можем создавать новые узлы
Теперь, после добавления HEADER, вам нужно сделать HTTP-запрос POST и убедиться, что у пользователя есть права на создание узла.
Если узел создан, вы получите ответ с ссылкой на узел
ПРИМЕЧАНИЕ. Если вы хотите получить ответ в формате JSON, всегда добавляйте .json в конце URL-адреса. например, http://XXXXXXXX.com/test/endpoint/user.json ИЛИ http://XXXXXXXX.com/test/endpoint/node.json ИЛИ http://XXXXXXXX.com/test/endpoint/user/user_id .json ИЛИ http://XXXXXXXX.com/test/endpoint/node/node_id.json
источник
Для Drupal 7 и Сервисов 7.x-3.x
Шаг 1: Отправьте почтовый запрос на
user.login
ресурс с вашим именем пользователя и паролем.Если вход выполнен успешно, вы получите объект ответа с 4 свойствами:
Скриншот из Google Chrome Почтальон
Шаг 2. Отправьте почтовый запрос
node
с двумя заголовками.Скриншот из Google Chrome Почтальон
источник
Если вы выполняете POST для REST API, вам придется поместить все в данные POST , а не в URL . В Почтальоне вы можете установить запрос на публикацию, а затем введите
x-www-form-urlencoded
и ниже, что вы можете добавить свои значения данных. Не забудьте добавить статус, uid, язык, тип, заголовок, а затем дополнительные значения. URL ресурса должен быть толькоHOST/REST_API_PATH/node
.источник