¿Cómo crear y obtener información de un nodo usando REST en Drupal8?

Author Top
Luis Eduardo Telaya Escobedo

1- ¿Qué necesitamos para crear un nodo y obtener sus datos en drupal 8 usando REST ?

Para crear un nodo y obtener información en drupal 8 usando REST, necesitamos tener habilitado los siguientes módulos:

  • Restful Web Services
  • Serialization
  • Rest UI (De gran ayuda para configurar los web services desde la interfaz gráfica)

2- Editamos el servicio de "contenido"

Debemos de ir a la configuración de REST UI admin/config/services/rest y veremos que el recurso “Content” está habilitado. Le damos click en “Editar”.

drupal 8 create content rest edit

 

3- Habilitamos los servicios GET y POST

Luego verificamos que los métodos GET y POST este seleccionados asi como el formato “json” y proveedores de autenticación “cookie”. Nota: si hay un error de Fatal error: Invalid placeholder (!method) in string… Entonces marcar lo mismo para el resto de servicios, esto es probable por la versión de drupal8.

 

Drupal8 get and post

3- Habilitamos los permisos para GET y POST

Luego vamos a /admin/people/permissions y buscamos “RESTful Web Services” seleccionamos los permisions para los métodos POST, GET. En este caso le damos al usuario anónimo

 drupal 8 permissions delete patch

Nota:

En muchos solo necesitaremos el permiso para el usuario anónimo con el método GET y no los otros.



3- Probamos los métodos usando POSTMAN!

Listo! ahora nos faltaba probar! y usaremos una herramienta llamada POSTMAN de chrome

3.1- Probamos el método GET para obtener el contenido de un nodo. 

Abrimos el postman y establecemos el método GET y ponemos la url de un nodo http://local.drupal8.com/node/1?_format=json

Notese el parametro ?_format=json es importante para que nos devuelva el resultado y en Headers le ponemos:

Content-Type   application/json

y hacemos click en "Enviar"(Send) y listo! nos devuelve un json con todo el contenido del nodo 1.

Postman Drupal 8

3.2- Probamos el método POST para crear contenido. 

Abrimos, y establecemos el método POST

url: http://local.drupal8.com/entity/node

y en Headers le ponemos:

Content-Type   application/json

 

y en la pestaña “Body” seleccionamos “raw” y escribimos el siguiente json

 

{
  "type":[
      {
          "target_id":"page"
      }
  ],

  "title":[
    {
      "value": "A node has been created via POST"
    }
  ],
  "body": [
    {
      "value": "<p>fdfdasfas dfsa</p>\r\n",
      "summary": "",
      "format" : "plain_text"
    }
  ]
  
}


En el cual básicamente le estamos diciendo que el type será el tipo de contenido “page” (página básica) el título y un body!

y listo lo hemos creado!

Postman create node

Postman headers post

Espero les haya sido de su agrado! hasta la proxima!

Happy codding!