Archivo de la categoría: PHP

Creación de un Servicio Web RESTFul usando PHP Parte II

En la primera parte se creo todo el código necesario para manipular los datos desde una base de datos MySQL. En el siguiente artículo se definirá el archivo userService.php el cual se encargara de manejar los 4 métodos HTTP para realizar el CRUD. En esta entrega se tratara el diseño e implementación de una API RESTFul.

El diseño de la API será el siguiente:

La primera parte a tratar sera el listado de usuarios para lo cual se usa el código:

En primer medida la variable $method guarda el método de petición por el cual fue accedida la Url, esto se logra mirando la variable $_SERVER[‘REQUEST_METHOD’].

Para listar los usuarios se verifica que la variable users este en la URL y dependiendo de su valor se llaman las funciones getUserById si contiene un id (para traer un usuario especifico) o getUserPaginated si están las variables limit y page en la URL,  si no están se trae toda la lista de usuarios con la función getUsers.

Los códigos de respuesta usados significan:

  • 200: Ok, Cuando se ejecuta una opción con éxito.
  • 201: Created, Cuando se ingresa un registro.
  • 404: Not Found, Cuando no se encuentra un recurso.

Para una lista completa de códigos se puede revisar el siguiente vínculo.

La función response se encargara de escribir las cabeceras necesarias para cumplir con la respuesta HTTP, la opción «header(‘Access-Control-Allow-Origin: *’)» habilita el acceso de diferentes orígenes y evita el error cors. La línea «header(‘Allow: GET, POST, PUT, DELETE’)» informa los métodos permitidos por el servicio.

La respuesta del servicio se envia en formato JSON y se utiliza la constante JSON_NUMERIC_CHECK para evitar que los números se pongan dentro de comillas. Una respuesta típica del servicio tendrá la estructura:

Si la consulta es paginada incluirá el objeto pagination para informar el total de páginas, la página anterior, y la siguiente si existen; esto con el fin de facilitar su consumo.

El método POST se utiliza para crear un nuevo usuario.

Se verifican las variables users, name, lastname, email, password, si tienen datos validos se realiza el ingreso usando la función insertUser la cual retorna 1 si fue exitoso, -1 si el correo ya esta registrado o 0 en otro caso.

Para eliminar un usuario utilizamos el método DELETE.

Para eliminar el usuario se busca que la variable users contenga un id, la función deleteUserById retorna 1 si se elimino el registro o 0 si no se pudo (por ejemplo el usuario no existe).

Por último para modificar un usuario se utiliza el método PUT.

Para modificar un usuario utilizando el método PUT se debe tener en cuenta que en PHP se utiliza para recibir archivos, por lo cual se utiliza la función file_get_contents para obtener la información enviada. La función parse_str convierte una cadena de petición de estilo variable1=x&variable2=y a un arreglo para acceder más fácil a la información. La forma de acceder este arreglo será $arreglo[‘variable1’]. Si se recibieron todos los datos se procede a utilizar la función updateUser la cual retorna 1 si se actualizo el usuario o 0 en otro caso.

Con estos 4 métodos el archivo userService.php ya esta listo para manejar el CRUD de la tabla usuarios pero hasta el momento no se cumple el diseño inicial del servicio, para lograr esto en un servidor apache debemos crear un archivo .htaccess de la siguiente manera:

Esto nos permite acceder por medio de la ruta users, users/id y users/limit:page como se definió en el diseño inicial. Con esto termina el artículo de la creación de un servicio RESTFul usando PHP.

En la tercera parte explicare como probar el servicio usando Postman.

 

Creación de un Servicio Web RESTFul usando PHP Parte I

En el presente artículo presentare la creación de un Servicio Web RESTFul usando PHP que permita la creación, eliminación, modificación y lectura de usuarios (POST,DELETE,PUT,GET) de una base de datos MySQL.

La base de datos utilizada será la siguiente:

Para acceder a la base de datos se debe ingresar los datos de la instalación local, localhost, user y password, la tabla según el esquema anterior se llama «crud_service».

Modelo de usuarios, esta clase permite manejar la información de la base de datos como objectos.

Por ultimo se define un objecto UserDao para acceder a las funciones más comunes en el manejo de usuarios (creación, modificación, listado, listado paginado, eliminación).

En la segunda parte explicare como usar estos elementos para la creación del servicio.