domingo, 25 de agosto de 2013

Ejemplo PHP de servicio RESTful - Parte 2

En el anterior tutorial creamos un sencillo servicio RESTful. Ahora vamos a ver como interactuar con él.
Para hacer peticiones al servicio RESTFul vamos a utilizar la herramineta cURL desde el interprete de comandos y la librería libcurl para utilizar la misma herramienta desde PHP.

Peticiones desde el interprete de comandos

1. Petición para recibir listado de usuarios:

  curl http://localhost/login_restful/usuarios  

Resultado:

  {"estado":"correcto","usuarios":[{"id":"5","nombre":"modificado","email":"prueba4@ejemplo.com"},{"id":"7","nombre":"modificado2","email":"prueba6@ejemplo.com"},{"id":"10","nombre":"pepe","email":"prueba@e.com"}]}  

2. Petición para crear un nuevo usuario:

 curl -d "nombre=otroUsuario&email=prueba@ejemplo.com&pwd=1234" http://localhost/login_restful/crearUsuario  

Resultado:

  {"estado":"correcto","msg":"usuario creado correctamente","usuario":{"id":"11","nombre":"otroUsuario","email":"prueba@ejemplo.com"}}  

3. Petición de comprobación la existencia de usuario del servicio:

  curl -d "email=prueba@e.com&pwd=1234" http://localhost/login_restful/login  

Resultado:

  {"estado":"correcto","msg":"datos pertenecen a usuario registrado","usuario":{"id":"10","nombre":"pepe","email":"prueba@e.com"}}  

4. Petición para modificar el nombre de un usuario:

  curl -X PUT -d "nombre=modificado" http://localhost/login_restful/actualizarNombre/7  

Resultado:

  {"estado":"correcto","msg":"nombre de usuario actualizado correctamente."}  

5. Petición para borrar un usuario:

  curl -X DELETE http://localhost/login_restful/borrarUsuario/11  

Resultado:

  {"estado":"correcto","msg":"usuario borrado correctamente."}  


Peticiones desde PHP

1. Petición para recibir lista de usuarios:

  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL, "http://localhost/login_restful/usuarios");  
  curl_setopt($ch, CURLOPT_HEADER, false);  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  //$data = json_decode(curl_exec($ch),true);  
  $data = curl_exec($ch);  
  print_r($data);  
  curl_close($ch);  

2. Petición para crear un nuevo usuario:

  $postData = array(  
  'nombre'=>'prueba11',  
  'email'=>'prueba11@ejemplo.com',  
  'pwd' =>'1234'  
  );  
  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL, "http://localhost/login_restful/crearUsuario");  
  curl_setopt($ch, CURLOPT_HEADER, false);  
  curl_setopt($ch, CURLOPT_POST, true);  
  //http_build_query => Generar una cadena de consulta codificada estilo URL a partir de array  
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  $data = curl_exec($ch);  
  print_r($data);  
  curl_close($ch);  

3. Petición de comprobación la existencia de usuario del servicio:

  $postData = array(  
  'email'=>'prueba@e.com',  
  'pwd' =>'1234'  
  );  
  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL, "http://localhost/login_restful/login");  
  curl_setopt($ch, CURLOPT_HEADER, false);  
  curl_setopt($ch, CURLOPT_POST, true);  
  //http_build_query => Generar una cadena de consulta codificada estilo URL a partir de array  
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  $data = curl_exec($ch);  
  print_r($data);  
  curl_close($ch);  

4. Petición para modificar el nombre de un usuario:

  $data = array("nombre" => 'usuario');  
  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL, "http://localhost/login_restful/actualizarNombre/12");  
  curl_setopt($ch, CURLOPT_HEADER, false);  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");  
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  
  $data = curl_exec($ch);  
  print_r($data);  
  curl_close($ch);  

5. Petición para borrar un usuario:

  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL, "http://localhost/login_restful/borrarUsuario/12");  
  curl_setopt($ch, CURLOPT_HEADER, false);  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');  
  $data = curl_exec($ch);  
  print_r($data);  
  curl_close($ch);  

Entradas relacionadas

Ejemplo PHP de servicio RESTful - Parte 1
Herramienta cURL en el interprete de comandos

3 comentarios:

  1. Exelente.... con ejemplos como este he logrado casi todo lo que necesito para un API completo, me gustaria conseguir un ejemplo del lado del servidor para "Petición de comprobación la existencia de usuario del servicio:"

    ResponderEliminar
    Respuestas
    1. Continuando mi comentario...... trate de tomarlo como una consulta, pero ocurre que despues de verificar la existencia de un usuario, voy a realizar otra consulta -si y solo- si el usuario esta activo.... gracias...

      Eliminar