Buenos días
La verdad jamás he programado en PHP, pero hace poco que estoy en un proyecto personal y quiero desarrollarlo con KumbiaPHP. Elegí este framework porque la documentación está en español y por los comentarios leídos parece ser bueno.
Lo primero que hice fue buscar información de cómo crear servicios REST con KumbiaPHP y encontré lo siguiente:
http://www.kumbiaphp.com/blog/2015/02/03/servicios-rest-con-kumbiaphp/Quise recrear el ejemplo y no me funciona. Con este simple tropiezo de algo tan básico estoy que me cambio a otro framework, es por ello que recurro a este foro para ayuda.
Este es mi código:
Controladorclass UsuarioController extends RestController {
/**
* Servicio que registra a un usuario en la base de datos.
*
@param string $correo, $contrasena
*/
public function post_registrar() {
try {
Logger::info("Probando el servicio");
$json = $this->param();
Logger::info("Parametros " . $json);
Logger::info("Email " . $json["correo"]);
} catch (Exception $exg) {
//Logger::error("Ha ocurrido un error al intentar registrar el usuario ". $param->email . ". Error [" . $exg->errorMessage() . "]");
//Arma la respuesta a enviar al usuario.
$respuesta = new Respuesta();
$respuesta->codigo = 1;
$respuesta->mensaje = "No ha podido ser registrado el usuario a causa de un error";
}
$this->data = $respuesta;
}
}
Probando el Servicio
Para probar el servicio uso "REST client" de Firefox, en el header enviado coloca el content-type con valor "application/json" y en el body {"correo":"correo"}.
El log de Kumbia me arroja lo siguiente:
[Thu, 20 Aug 15 11:17:50 -0430][INFO] Probando el servicio
[Thu, 20 Aug 15 11:17:50 -0430][INFO] Parametros {"correo":"correo"}
[Thu, 20 Aug 15 11:17:50 -0430][INFO] Email {
Y la respuesta de kumbia es:
Warning: Illegal string offset 'correo' in usuario_controller.php on line 21
...
¿Alguién que me pueda ayudar?
Gracias y saludos
Comentarios
Haz un var_dump para verlo.
Lo mismo lo que envias es un array con los objetos, y lo mismo es el $json [0]["correo"];
Un saludo.
El mismo Rest client te ayuda a ponerlo correcto.
Lo puse a funcionar no recibiendo un json, sino recibiendo los parámetros por un POST.