Servicios REST

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:


Controlador

class 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

  • Primeramente yo miraría  a ver que es $json, porque creo que das por hecho que es un array y lo mismo es un string o es un array de arrays.

    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.
  • edited agosto 2015
    Posiblemente estas usando content-type cuando debe ser Content-Type.
    El mismo Rest client te ayuda a ponerlo correcto.
  • Gracias.

    Lo puse a funcionar no recibiendo un json, sino recibiendo los parámetros por un POST.
Sign In or Register to comment.