Rest ful api con slim php – rutas y mysql

En este segundo artículo veremos mas a detalle cómo consumir servicios web a través de REST con slim php. Ya teniendo la instalación completa es necesario comenzar a crear la estructura de rutas y la conexión a la base de datos en caso de ser requerida, como vimos en el artículo anterior, que puedes consultar de nuevo dando click aqui, no es muy difícil iniciar un proyecto con slim, y como te darás cuenta tener una conexión a base de datos y las rutas para realizar consultas tampoco lo será, hoy tomaremos como ejemplo el de administrar usuarios a través de consultas HTTP, con los métodos GET, POST, PUT, DELETE descrito de la siguiente manera:

  • GET: Utilizaremos 2 consultas get para obtener información de la base de datos sobre los usuarios registrados, la primera para obtener un arreglo de todos los usuarios, y la segunda con un identificador obtendremos un arreglo de datos de un único usuario.
  • POST: Con este método insertaremos usuarios a nuestro sistema o base de datos.
  • PUT: Si tenemos el identificador de un usuario podemos hacer modificaciones a la base de datos, por lo que usaremos este método para poder hacerlo.
  • DELETE: Por último utilizaremos este método para eliminar un usuario con su identificador.

Lo primero que necesitamos hacer es crear la base de datos, en este caso la haremos en SQL, asumiendo que sea desde consola, ingresando el siguiente código:

Una vez creada la base de datos y la tabla usuarios, el segundo paso es preparar la conexión a mysql, en php existen varios métodos para realizarlo como pueden ser funciones mysql (obsoleto desde la versión 5 de php), mysqli que recomienda el sitio oficial de php, y por último con un objeto de clases php PDO, aunque las 3 formas son válidas, utilizare la ultima opcion ya que a mi parecer es más fácil de utilizar y el uso de consulta preparas es muy simple.

Abrimos nuestro archivo index.php que configuramos anteriormente (ver de nuevo), de preferencia borramos el código innecesario y dejamos solo lo siguiente:

En la siguiente linea agregamos la función para poder realizar la conexión a la base de datos:

Reemplaza el texto “mibase” por tu nombre de base de datos de igual manera el texto “usuario” y la “contraseña” por tu configuracion, y de esta manera ya tendremos la conexión a la base de datos, el siguiente paso es registrar las rutas en el objeto $app creado inicialmente.

En este punto comenzaremos a utilizar los métodos HTTP para obtener la lista de usuarios y los datos de un usuario en específico utilizando su id, en este caso haremos uso del método GET, para registrar una ruta en slim tipo GET, se utiliza el método con el mismo nombre quedando de la siguiente manera:

En el método se agrega el primer parámetro “nombre de la ruta” y luego se agrega una función o clase a utilizar en este caso utilizamos una función anónima que puede ser declarada como parámetro, como puedes darte cuenta creamos la conexión a la base de datos, y con la sentencia SQL realizamos la consulta de manera rápida, siempre debes de realizar la consulta dentro de un try/catch para evitar errores en ejecución. Por último recogemos los datos y los mostramos en formato json con la función json_encode().

Para obtener los datos de un usuario en especifico solo necesitamos tener el identificador de la base de datos y podremos realizar la consulta, en este caso pasamos el parámetro id a través de la ruta “/usuario/:id”, el texto “:id” slim lo reconoce como variable y lo podremos utilizar dentro de la función como se ve a continuación:

Para utilizar el parámetro ”:id” declarado en la ruta, debemos incluir dentro de la función el parámetro con el mismo nombre. En la sentencia SQL utilizamos el signo ? para referirnos a un parámetro variable que desconocemos, esto se conoce como sentencias preparadas, puedes utilizar este signo para referirte a los parámetros que desees solo debes respetar el orden al ingresarlos, y con el método “bindParam(1, $id)” reemplazamos el signo por la variable.

Para insertar usuarios hacemos uso del método POST que es utilizado para enviar información de manera más discreta, el código a utilizar seria asi:

 

Como puedes notar, con el método request->post(“nombre_de_lparametro”) obtenemos el valor de cada variable, y utilizando sentencias preparadas insertamos cada valor en nuestra base de datos, y como respuesta mostramos un 1 en caso de haberse agregado los datos con éxito.

Para actualizar los datos de un usuario existente en la base de datos, solo es necesarios el id, utilizamos el método PUT realizamos las modificaciones, el código necesarios es el siguiente:

El código es similar al método POST la diferencia es básicamente la consulta SQL que ahora es “update” en lugar de “insert”.

Si necesitamos eliminar un usuarios, utilizamos el método DELETE utilizando el id del usuarios para referirnos a él en la base de datos, de igual forma que en el método GET también pasamos el id a través de la url, el codigo quedaria de esta manera:

Si todo salio bien, mostramos un 1 como confirmación, y por último agregamos la linea “$app->run();” para poner a correr la aplicación.

Una vez finalizado la configuración en slim debemos probar si todo esta funcionado correctamente, lo cual explicaré en la próxima entrada para no hacer muy largo el artículo.

A %d blogueros les gusta esto: