Cargando



Retornar JSON desde controlador en Laravel

En este tutorial veremos cómo podemos hacer que nuestra aplicación en Laravel genere una respuesta JSON desde su controlador.


oct 24 2014 04:53
Avanzado
oct 27 2014 12:00
Las aplicaciones web modernas han estado evolucionando de forma acelerada, uno de los últimos avances es el trabajo mediante servicios RESTful, es decir, no depender de estados, si no que trasladamos los datos con los métodos HTTP, esto nos da una gran versatilidad, porque podemos mezclar diferentes tecnologías y lenguajes de programación para lograr los objetivos.

Entre las mezclas más utilizadas en la actualidad está tener un sistema de persistencia programado, que en este caso puede ser en PHP con Laravel y luego todo el front-end manejarlo con Javascript, u otro lenguaje que solo se encargue de la capa de presentación.

Para poder comunicarse ambas partes dependen de un lenguaje en común y este es JSON, con lo cual la transmisión de datos puede darse bajo un dialecto en común y así evitar incompatibilidades.

Construir el controlador


Para desarrollar esta funcionalidad debemos tener una instalación estándar de Laravel únicamente, no hay requisitos adicionales. Luego que cumplamos lo anterior podemos seguir los siguientes pasos.

1- Primero vamos a crear un controlador en la carpeta controllers, podemos llamarlo LibrosController.php, aquí vamos a establecer un método que nos dé una vista básica del controlador, y además un método que va a tomar una fuente de libros en este caso un Array y va a generar una respuesta con el método de la clase Response llamado json(). Veamos en la siguiente imagen el código generado:

laravel-retornar-json-controlador.jpg


2- Ya que hemos construido el controlador ahora debemos activarlo en nuestro archivo routes.php, con esto podremos hacer el recurso accesible dentro de la aplicación, para ello solo necesitaremos el siguiente código:

Route::controller('libros', 'LibrosController');

3- Finalmente vamos a crear una carpeta llamada libros en el directorio views de nuestra aplicación, dentro de nuestro nuevo directorio, vamos a crear una vista en un archivo llamado index.php, que se va a encargar de hacer peticiones mediante AJAX al controlador, para ello nos valdremos de jQuery y sus métodos AJAX y así conectarnos vía GET con el controlador que hemos generado en el primer paso, una vez que el controlador nos dé una respuesta podemos mediante el mismo jQuery incorporar el contenido obtenido en nuestra vista de forma asíncrona y así darle un significado a los datos, veamos el código que necesitaremos:



Para lograr el objetivo llamamos la librería jQuery desde la CDN de Google, luego ya dentro de la página como tal creamos un par de elementos que van a interactuar con el pequeño script que llama a nuestro controlador mediante un método GET, finalmente lo recibido es colocado en el elemento libro-list para que podamos ver el resultado de lo desarrollado.

Con esto finalizamos este tutorial, en el cual pudimos ver que fue muy fácil construir el controlador, esto es gracias a la clase Response, ya que con el método que en ella reside json(), podemos asegurarnos que todos los arrays que le pasemos serán convertidos de forma válida al formato JSON, por lo que podemos pasarle por ejemplo un contenido dinámico de una búsqueda de base de datos, esto nos facilita la vida ya que no tenemos que construir a mano una funcionalidad que construya un resultado JSON.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X