Me he referido a muchos enlaces, incluidos los siguientes:
- Módulo de servicios. ¿Cómo construir los datos JSON con información de sesión para crear el nodo?
- GitHub - Creando un nodo usando los Servicios 6.3 REST
Intenté varias maneras de PUBLICAR un nuevo nodo en un sitio de Drupal, pero he fallado. Creé un CCK de muestra para almacenar datos de estudiantes con nombre, edad, sexo, fecha de nacimiento y agregué una lista.
Instalé y configuré el módulo de Servicios (D7) y creé un punto final de servicio en los servicios.
Como se esperaba, GET es la forma más fácil de obtener detalles de un nodo en JSON. http://localhost/drupal/services/node
simplemente enumeró todos los nodos.
Todavía no puedo entender cómo usar el método POST .
Me gustaría buscar a los estudiantes cuyo nombre contiene John . Probé
localhost/drupal/services/node&node[name]=john
. Utilicé el complemento POST Man para Chrome sin éxito. También probé algunas otras formas.Traté de agregar un nuevo estudiante al sitio sin éxito.
¿Alguien puede guiarme para que lo anterior funcione bien?
ACTUALIZACIÓN
Intenté agregar nuevos nodos de tipo artículo . Funcionó bien pero cuando intento agregar nodos del tipo Departamento CCK , muestra " s: 22:" Error de validación CSRF "; " Estas son las capturas de pantalla
He pasado por el enlace https://drupal.org/node/2013781
Seguí session = session_name = session_id pero todavía recibo un error.
Respuestas:
Espero que esto te ayudará,
Para Drupal 7
Herramientas utilizadas:
Solicitudes HTTP
Para realizar las solicitudes HTTP, debe usar el complemento POSTER de Firefox .
Dos métodos comúnmente utilizados para una solicitud-respuesta entre un cliente y un servidor son:
Después de descargar el complemento. Abra Firefox -> Herramientas -> Cartel
Asegúrese de habilitar la autenticación de sesión . Una vez que los Servicios se hayan configurado correctamente, antes de crear el nodo, debe iniciar sesión . Una vez que haya iniciado sesión, puede crear los nodos.
Para iniciar sesión, utilice el método POST, con la URL como: http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login
Si es un usuario válido , devolverá los detalles del usuario con el ID y el nombre de la sesión . Si no es válido, devolverá el acceso denegado
Al usar el nombre y la ID de la sesión en el POST HEADER, podemos crear nuevos nodos
Ahora, después de agregar HEADER, debe realizar una solicitud HTTP POST y asegurarse de que el usuario debe tener permisos para crear el nodo.
Si se crea el nodo, obtendrá la respuesta con el enlace de nodo
NOTA: Si desea la respuesta en JSON, siempre debe agregar .json al final de la URL. por ejemplo, http://XXXXXXXX.com/test/endpoint/user.json O http://XXXXXXXX.com/test/endpoint/node.json O http://XXXXXXXX.com/test/endpoint/user/user_id .json O http://XXXXXXXX.com/test/endpoint/node/node_id.json
fuente
Para Drupal 7 y Servicios 7.x-3.x
Paso 1: emita una solicitud de publicación de
user.login
recursos con su nombre de usuario y contraseña.Si el inicio de sesión es exitoso, obtendrá un objeto de respuesta con 4 propiedades:
Captura de pantalla del cartero de Google Chrome
Paso 2: emita una solicitud de publicación
node
con 2 encabezadosCaptura de pantalla del cartero de Google Chrome
fuente
Si realiza POST en la API REST , deberá colocar todo en los datos POST , no en la URL . En Cartero , puede configurar la solicitud para publicar, luego escriba ay
x-www-form-urlencoded
debajo de que puede agregar sus valores de datos. No olvide agregar estado, uid, idioma, tipo, título y luego los valores adicionales. La URL del recurso debe ser soloHOST/REST_API_PATH/node
.fuente