Consumir webservice de Drupal desde PHP

Con esta entrada veremos la forma (una forma) de consumir desde PHP un servicio web publicado mediante Drupal. Lo haremos usando la librería Client URL, cURL, que es una implementación de libcurl para PHP, y que nos permite hacer todo tipo de peticiones desde PHP.

El servicio web en cuestión publicado desde Drupal, es de tipo RESTful, y la particularidad más destacada que tiene es que la autenticación funciona mediante cookie. Esto significa que toda llamada a una función de ese servicio web debe llevar consigo una cookie con una sesion establecida previamente con el servidor.

Entonces el procedimiento cuando queremos hacer una petición a una función del servicio, inicialmente haremos una primera petición para autenticarnos y obtener una cookie con la sesión. Una vez hecho esto ya podremos hacer la petición a la función que queramos del servicio, adjuntando la cookie que hemos obtenido en la petición de autenticación.

El código

Vamos a ver el código en cuestión:

Haciendo las peticiones detrás de un proxy

En nuestro caso, tuvimos que añadir adicionalmente la configuración del proxy de nuestra red, puesto que para salir a Internet lo hacemos mediante un servidor proxy. Para hacer esto, simplemente añadimos dos opciones más al objeto curl: la url del proxy y su puerto:

Y esto es todo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *