En el servidor creamos el fichero api.php:
<?php
// ********************************
function alta_nuevo_actor($nombre, $anno_oscar, $pelicula) {
// Aquí se hará las SQL para insertarlo en la BD
return "Insertando en la BD:".$nombre.",".$anno_oscar.",".$pelicula;
}
// ********************************
function get_datos_actor($id){
$arrActores = array();
// Los datos normalmente se sacaran de la BD
switch($id){
case 1:
$arrActores = array("nombre" => "Humphrey Bogart", "anno_oscar" => "1951", "pelicula" => "La reina de Africa");
break;
case 2:
$arrActores = array("nombre" => "Gary Cooper", "anno_oscar" => "1952", "pelicula" => "Solo ante el peligro");
break;
case 3:
$arrActores = array("nombre" => "William Holden", "anno_oscar" => "1953", "pelicula" => "Traidor en el infierno");
break;
}
return $arrActores;
}
// ********************************
function get_listado_actores() {
// Los datos normalmente se sacaran de la BD
$arrActores = array(array("id" => 1, "nombre" => "Humphrey Bogart"),
array("id" => 2, "nombre" => "Gary Cooper"),
array("id" => 3, "nombre" => "William Holden"));
return $arrActores;
}
// *** PRINCIPAL
if(isset($_GET["accion"])){ // Siempre debe existir
switch($_GET["accion"]){
case "alta_nuevo_actor":
$value = alta_nuevo_actor($_GET["nombre"], $_GET["anno_oscar"], $_GET["pelicula"]);
break;
case "get_listado_actores":
$value = get_listado_actores();
break;
case "get_datos_actor":
$value = get_datos_actor($_GET["id"]);
break;
}
}
exit(json_encode($value)); // tiene que ser exit, no echo
?>
En el cliente creamos el fichero rest_client.php
<html>
<body>
<?php
if(isset($_GET["accion"]) == "get_datos_actor"){
$datos_actor = file_get_contents('http://www.dominio1.com/REST/api.php?accion=get_datos_actor&id='.$_GET["id"]);
$datos_actor = json_decode($datos_actor, true);
?>
Nombre: <?=$datos_actor["nombre"] ?><br />
Año del Oscar: <?=$datos_actor["anno_oscar"] ?><br />
Película: <?=$datos_actor["pelicula"] ?><br />
<?php
}
else {
$list_actores = file_get_contents('http://www.dominio1.com/REST/api.php?accion=get_listado_actores');
// print_r($list_actores);exit;
$list_actores = json_decode($list_actores, true);
foreach($list_actores as $actor) { ?>
<a href="rest_client.php?accion=get_datos_actor&id=<?=$actor["id"];?>"><?=$actor["nombre"];?></a><br>
<?php
}
}
?>
<hr>
<form method="post" action="alta_nuevo_actor.php">
<b>Dar de alta un nuevo actor</b><br>
Nombre: <input type="text" name="nombre"><br>
Año Oscar: <input type="text" name="anno_oscar"><br>
Película: <input type="text" name="pelicula"><br>
<input type="submit" value="Dar de alta">
</form>
<hr>
<a href="rest_client.php">Volver al listado</a>
</body>
</html>
En el cliente creamos el fichero alta_nuevo_actor.php
<?php
$cadena = 'http://www.dominio1.com/REST/api.php?accion=alta_nuevo_actor&nombre='.$_POST["nombre"].'&anno_oscar='.$_POST["nombre"].'&pelicula='.$_POST["pelicula"];
$resultado = file_get_contents($cadena);
echo $cadena."<hr>";
echo($resultado);
?>
No hay comentarios:
Publicar un comentario