lunes, 30 de septiembre de 2013

Rest con PHP, más fácil imposible!!


Me toco diseñar una API REST con PHP y la verdad me da vergüenza decir que trabaje, porque es sumamente fácil,lo primero hacemos nuestra función PHP, para el ejemplo un listado de paises:

    $db = new DB(); //Con este objeto me conecto a la base
    $db->conectar();
    $sql = 'SELECT * FROM `paises` ORDER BY `nombre`'; //Listo los paises por ejemplo
    $consulta = $db->query($sql);

    while ($fila = mysql_fetch_array($consulta)) {
        $paises[] = $fila;  
    }
    $data["paises"] = $paises;
    echo json_encode($data); // lo imprimo formato json.

Y listo, claro que no es rest puro pero es util para publicar una función. Si quieren usar Rest puro pueden usar el metodo $_SERVER['REQUEST_METHOD'] y de esta forma saber el metodo, y si tenemos un controlador podemos hacer:

$method = $_SERVER['REQUEST_METHOD'];

// 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':
         // código para método PUT
        break;
    case 'DELETE':
        // código para método DELETE
        break;
}

Y esto lo podemos consumir con javascript y si usamos jquery es una papa:

           $.ajax({
                       type: "GET",
                       dataType: "JSON",
                       url: "listar_paises",                                        
                       success: function(data)                                 
                       { //hacer algo
                       },
                       error: function() 
                       {       alert("Error recuperando la lista de Paises");
                       }                
                });

Y listo!!