Un servidor REST (Representational State Transfer) puede ser muy útil para la creación de aplicaciones HTML5. Utilizaríamos el servidor para el módelo de datos y el cliente (navegador) para la lógica de la aplicación, realizando llamadas ajax al servidor que devolvería los datos en formato JSON, por ejemplo. En un sistema REST, cada recurso es direccionable únicamente a través de su URI, y disponemos de un conjunto de aplicaciones (POST, GET, PUT y DELETE), propias del protocolo HTTP, para trabajar con esos recursos.
Por ejemplo, si disponemos de una base de datos de clientes y queremos objetener una lista con ellos, tendríamos que acceder a la URL del recurso "clientes", http://servidor.com/clientes. Una petición GET a este recurso nos devolvería un array con todos los clientes que tenemos en nuestra BB.DD. Si lo que queremos es obtener la información de un cliente en particular, por ejemplo el cliente con identificador igual a 00001, haríamos una petición GET a la url http://servidor.com/clientes/00001. Para crear un cliente nuevo tendríamos que enviar por POST una petición a http://servidor.com/clientes con los datos del nuevo cliente. Para modificar algún dato del cliente 00001 usaríamos una petición PUT con los nuevos datos a http://servidor.com/clientes/00001. Si la petición es DELETE a esa misma url, borraríamos ese registro de la BB.DD. Normalmente los datos que devuelve el servidor estarán en formato JSON o XML. Para nuestro ejemplo utilizaremos JSON, ideal para trabajar con aplicaciones javascript.
Para tratar mediante PHP las peticiones en nuestro servidor utilizaremos un código parecido a este:
$method = $_SERVER['REQUEST_METHOD']; // tendremos que tratar esta variable para obtener el recurso adecuado de nuestro modelo. $resource = $_SERVER['REQUEST_URI']; // Dependiendo del método de la petición ejecutaremos la acción correspondiente. switch ($method) { case 'GET': // código para método GET break; case 'POST': $arguments = $_POST; // código para método POST break; case 'PUT': parse_str(file_get_contents('php://input'), $arguments); // código para método PUT break; case 'DELETE': // código para método DELETE break; } echo json_encode($response,true); // $response será un array con los datos de nuestra respuesta.
Utilizando jquery es muy sencillo realizar peticiones a nuestro servidor con la función $.ajax:
$.ajax({ url: 'http://servidor.com/recurso', // url del recurso type: "get", // podría ser get, post, put o delete. data: {}, // datos a pasar al servidor, en caso de necesitarlo success: function (r) { // aquí trataríamos la respuesta del servidor } });
Con estas simples indicaciones ya tenemos las bases para la construcción de una aplicación. Si diseñamos bien nuestro modelo de datos tendremos la oportunidad de crear gran variedad de aplicaciones para distintos tipos de clientes (navegadores web, móviles, aplicaciones de escritorio ...), sin tener que modificar nuestro servidor, utilizando un método estandar, sencillo e intuitivo.
Comentarios