os pongo una duda que a estas horas y después de llevar todo el día....no encuentro el fallo y me está volviendo loco...además es super curisoso...inexplicable...
Os comento..estoy montando un webservice sencillo en php..tipo REST.
Aquí el código del webService
Código: Seleccionar todo
<?php
// route the request (filter input!)
$verb = $_SERVER['REQUEST_METHOD'];
//Formamos la palabra para saber a qué método llamar.
$action_name = strtoupper($verb) . 'Action';
//Obtenemos los parámetros (/loqsea/).
//Puede ser que no hayan con lo cual la variable $_SERVER['PATH_INFO'] no existirá
echo $verb;
if(isset($_SERVER['PATH_INFO'])){
require_once 'controllers.php';
if($verb=="GET"){
$url_params = explode('/',$_SERVER['PATH_INFO']);
//Función ucfrirst devuelve la misma cadena
//pero el primer caracter de la cadena en mayúsuculas
//Lo hacemos para construir a partir del recurso que nos pedirán users, un objeto de la clase UsersController
$controller_name = ucfirst($url_params[1]) . 'Controller';
$controller = new $controller_name();
$data = $controller->$action_name($url_params);
}elseif ($verb=="POST"){
var_dump($_POST);
$url_params= substr($_SERVER['PATH_INFO'], 1,strlen($_SERVER['PATH_INFO'])-2) ;
$controller_name = ucfirst($url_params) . 'Controller';
$controller = new $controller_name();
$data = $controller->$action_name();
}
echo json_encode($data);
}
?>
Código: Seleccionar todo
<?php
/*
//Petición GET
$response = file_get_contents("http://campusaula.dwes/users/");
print_r(json_decode($response));
*/
//Peticion POST
//Creamos la petición, es decir los nombres de las variables y sus valores.
$postdata = http_build_query(
array(
'user' => 'jose'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://campusaula.dwes/users/', false, $context);
echo $result;
?>
$url_params = explode('/',$_SERVER['PATH_INFO']);
fuera de todos los if...o dentro del primer if(isset($_SERVER['PATH_INFO'])){
me dice que la petición que realizo es GET, y si quito esa línea y la pongo solo dentro de si $verb=='GET' me dice que la petición es POST.
Pero claro necesito $url_params = explode('/',$_SERVER['PATH_INFO']); para saber a qué recurso quiere.....es algo super extrañoooo!!! me gustaría que alguien me ayudase estoy desesperadooooo
Gracias.
Saludos.