Archivo de la categoría: RESTFul

Creación de un Servicio Web RESTFul usando PHP Parte III: Postman

En la tercera parte de esta serie explicare como usar Postman para probar el servicio creado. Como primer paso si no se tiene instalado es descargar la última versión de la página e instalarla.

Postman, pantalla principal.

La interfaz es sencilla, en la parte superior se encuentra un selector para el método a utilizar, a su lado la dirección a probar, por último a la izquierda el botón SEND que envía la petición.

Para probar el listado de usuarios en mi caso la URL es http://localhost/crud/users por lo que se selecciona el método GET y se enviá la petición. El resultado es el siguiente:

Como se puede ver la base de datos contiene dos usuarios, para ver el usuario con el id 1, se agrega a la URL http://localhost/crud/users/1 y el resultado es:

Para la creación de un usuario seleccionamos el método POST, en las pestañas inferiores se debe seleccionar Body, muy importante seleccionar la opción x-www-form-urlencoded (los parámetros se envían como un conjunto de variables unidas separadas por ampersand &).

Petición POST usando Postman.

El resultado se puede ver en la parte inferior.

Resultado petición POST usando Postman.

Vamos a modificar el usuario creado con el método PUT cambiando el correo user3@site.com por newmail@site.com.

Petición PUT usando Postman.

Para probar el método DELETE vamos a eliminar el usuario creado anteriormente usando la URL http://localhost/crud/users/3.

Petición DELETE usando Postman.

De esta manera se han probado los 4 métodos aceptados por el servicio web.

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.