Desarrollar comandos con Codeigniter 4 CLI
Desarrollar comandos con Codeigniter 4 CLI

En esta entrada vamos a ver una pequeña introducción al desarrollo de una api rest con Codeigniter 4, aunque ya sabemos que a día de escribir esta entrada Codeigniter 4 está en una versión pre-alpha, será una pequeña guía para saber cómo funcionará esta nueva versión de Codeigniter.

Debe quedar claro que a día de hoy es recomendable seguir trabajando con la versión 3 ya que todavía falta bastante tiempo para tener una versión 4 de Codeigniter estable.

La entrada tendrá dos secciones, la primera donde crearemos la api, y la segunda donde la consumiremos vía curl con la clase CURLRequest de Codeigniter 4, la cual nos permite hacer uso de curl desde Codeigniter.

Definir las rutas de una api rest en Codeigniter 4

Definir las rutas de una api rest en Codeigniter 4 es muy sencillo, sólo necesitamos una línea para tener los métodos más básicos.


Una vez tengamos esa ruta definida, podremos acceder a las siguientes urls.


Ahora debemos crear un modelo para representar a nuestros cursos, el siguiente nos sirve perfectamente.


Si tienes dudas con el código anterior revisa esta entrada.

Ahora debemos definir el controlador Courses el cuál debe implementar todos los métodos necesarios para la ruta definida anteriormente.



Todo controlador en Codeigniter 4 tiene acceso a $this->request y $this->response, desde donde podemos acceder a sus respectivas clases cuando lo necesitemos.

Las novedades con tutoriales anteriores son varias, la primera, la forma en la que podemos obtener los datos post de una petición con $this->request->getPost(‘clave’), otra cosa importante es ver cómo podemos obtener los datos de una petición put, los cuales pasamos en el body de la request y los recuperamos con $this->request->getBody(), finalmente podemos ver la forma en la que devolvemos la respuesta con $this->response, establecemos el código, el content type, el cuerpo de la respuesta y finalmente ejecutamos el método send para que sea ejecutada la respuesta, así de sencillo.

Consumir la api rest con curl en Codeigniter 4

Lo primero que debemos hacer es crear un controlador y definir el esqueleto, también vamos a definir el constructor aunque realmente no lo necesitamos.


Cómo puedes ver, simplemente definimos una propiedad y el constructor, ahora vamos a definir todos los métodos necesarios para poder consumir nuestra api de forma completa.


A destacar lo siguiente, por ejemplo, cómo accedemos a la clase curlrequest con $client = Config\Services::curlrequest(), aquí tenemos acceso a peticiones http de todo tipo vía curl, si tenemos que hacer una petición post con datos debemos pasar un array con la key form_params, esto será interceptado en el core, si no queremos visualizar la información de la petición podemos deshabilitar el debug con ‘debug’ => null en cada petición, el método update_course muestra cómo podemos pasar datos en una petición put al servidor, simplemente debemos utilizar el método setBody, y así con todo, cómo puedes ver es simple.

Debe quedar claro que esto puede cambiar radicalmente en cualquier momento, siempre es recomendable seguir la documentación una vez esté disponible…