Como crear un RESTful Web Service en PHP

23/Ene/2018 restful

Ahora veremos como crear un RESTful web service utilizando PHP y MySQL para consultar y guardar la información. Para que puedas probar este código debes tener instalado PHP y MySQL, si aun no lo tienes puedes instalarlo en tu computadora siguiendo los pasos en este articulo.

Antes que nada debes de tener claro que es un web service RESTful, si aun tienes dudas, puedes leer un articulo sobre RESTful haciendo clic aquí.

Para este ejemplo vamos a asumir que tenemos un blog y necesitamos un servicio RESTful para acceder a los artículos y editarlos, entonces nuestro servicio va realizar estas operaciones:

  • Listar todos los posts (artículos de un blog)
  • Mostrar un post
  • Agregar un post
  • Eliminar un post
  • Actualizar uno o más campos de un post

Preparar la base de datos

Vamos a utilizar una tabla llamada blog (de MySql) con estos campos:

Base de datos, para servicio RESTful

Lo más importante aquí, es que el campo id debe estar marcado para auto incremento y debe ser la llave primaria, puedes usar este sql, para generala en tu computadora, en mi caso la base de datos se llama blog:

Código de PHP para el web service RESTful

Ahora vamos a crear 3 archivos de php

  • config.php: En este archivo se encuentra la configuración para la base de datos
  • utils.php: Funciones que hacen más fácil interactuar con la base de datos
  • post.php: El código propio del web service RESTful

Este es el archivo de configuración, debes asegurarte de que tiene todos los parámetros correctos para que pueda conectarse a tu base de datos

Ahora el archivo de utilidades:

Finalmente este es el archivo que implementa el servicio RESTful

Ahora voy a explicar un poco el ultimo archivo, como ya sabes en RESTful la acción a ejecutar depende mucho del metodo HTTP que utilizas, entonces utilizo la variable $_SERVER['REQUEST_METHOD'], para determinar si se esta haciendo una petición GET, POST, DELETE o PUT.

Con la sentencia  header("HTTP/1.1 200 OK"), puedo enviar códigos de respuesta, para informar si el servicio se ejecuto con éxito o con algún error.

Con las sentencia  json_encode de php, se transforma la salida de echo en un formato JSON, lo cual es necesario en los servicios RESTful.

Como probar el servicio RESTful

Los servicios RESTful no se pueden probar en un navegador, por que no hay forma de enviar peticiones PUT o DELETE, entonces podemos usar un programa especial como postman

Mejoras a este programa.

Escribí este código para mostrarte como implementar un web service RESTFul usando PHP, y para mantener el código sencillo omití algunas validaciones que no debería de faltar en un ambiente de producción, por ejemplo:

Cuando realizas el update, no deberías de permitir actualizar todos los campos, por ejemplo campos de fecha de creación, usuario que modifica, etc.

En caso de que se solicite un post por ID y el ID no exista debería de retornar un código 404 Not found. Lo mismo aplica para editar o eliminar.

También hace falta un forma de autenticarse antes de permitir acceso a los métodos de eliminar, actualizar o insertar información.



Ir a la barra de herramientas