Como usar Restful web services con PHP

19/Jun/2018 restful

En los artículos anteriores te mostré que es un RestFul web service y como crear uno usando PHP. Ahora voy a mostrarte como puedes llamarlos o consumirlos usando PHP.
Para hacer esto más sencillo voy a utilizar una librería llamada Guzzle la cual hace más fácil hacer peticiones HTTP para trabajar con servicios. Voy a instalar esta librería usando Composer, si nunca has trabajado con Composer o quieres aprender un poco más, puedes leer este articulo sobre Composer.

Primero crea una carpeta, en mi caso será cliente-rest, luego abre una ventana de comandos (consola) y navega hasta la carpeta que acabas de crear, y escribe este comando:

composer init

Salida comando composer init

Con eso acabas de configurar un proyecto vacío para utilizar composer. El siguiente paso es instalar Guzzle, para ello escribes este otro comando:

composer require guzzlehttp/guzzle

NOTA: Vamos a consumir el servicio Restful que creamos en el articulo Como crear un Restful web service con php, puedes consultar el articulo y crear el mismo servicio para poder seguir este tutorial o adaptarlo a otro servicio que tengas disponible

Ya esta listo, ahora solo tienes que crear un archivo, por ejemplo index.php, y escribes este codigo:

Lo que hace el código anterior es muy sencillo, primero agregamos el archivo autoload.php que hizo Composer para nosotros, luego declaramos que vamos a usar las variables que están en la ruta GuzzleHttp\Client. Después creamos un cliente HTTP y le pasamos la dirección del servicio REST que vamos a consumir, también le pasamos un parámetro que indica que la llamada va a esperar un máximo de 5 segundos por la respuesta antes de dar un error. Finalmente hacemos la llamada por medio del método GET, este nos va a regresar todos los post mediante el servicio Rest, pero también verificamos si el código de retorno es 200, de ser asi imprimimos el resultado. Si todo te ha salido bien, verás algo como esto:

Cliente rest en php

Si el servicio te regresa información, pero no se ve tan ordenada como en la imagen, puedes instalar una extensión en Chrome como la que yo utilizo JSONView.

Ahora veamos como llamar al servicio Rest enviando parámetros, vamos a recuperar toda la información de un post especifico.

Ahora el código ha cambiado un poco, cuando llamo el método request, para llamar al servicio, le envío 3 parámetros en lugar de uno, el primero es el método HTTP, que es GET, el segundo es alguna modificación a la ruta del servicio,  en caso de que la ruta cambie según la sección del servicio Rest que se deseea consumir, pero en este caso le envío null por que la ruta es la misma, finalmente el tercer parámetro es el que sirve para enviarle los parámetros al servicio, estos se envían en forma de array y usando la llave query para parámetros de tipo GET y se usa  form_params para enviar parámetros de tipo POST (como veremos más adelante).

Luego todo sigue igual, excepto que ahora uso la función de PHP json_decode para transformar el contenido en formato json a un array asociativo, luego puedo acceder al contenido como un array típico de PHP.

Ahora veamos el resto de casos: PUT, DELETE y PUT

No explico esta otra parte, por que ya todo debe ser familiar para ti, si tienes alguna duda sobre este código, te dio algún error, o simplemente te funciono bien, no olvides que puedes dejarme un comentario abajo en este articulo.

Siempre trato de mantener el código lo más simple posible y debes saber que aquí hace falta hacer algunas validaciones y otras mejoras, pero espero que el concepto de como poder consumir los servicios Rest, este muy claro ahora.



Ir a la barra de herramientas