Emplear Laravel Inertia o crear una app en Laravel + Rest Api + Vue/React
Índice de contenido
Quería comentar rápidamente una consulta que me hicieron sobre Laravel Inertia.
Recuerda que, en caso de que no estés familiarizado, Laravel Inertia es una forma de integrar Vue directamente con Laravel, es decir, sin necesidad de emplear una Rest API para la comunicación. En otras palabras, en vez de devolver un archivo Blade, como es habitual, Laravel devuelve un componente Vue. Gracias a esto, todo el pase de parámetros que hacemos se recibe mediante props en Vue.
Ejemplo práctico
Por ejemplo, en un proyecto que tengo con Laravel Inertia, en la vista de detalle recibimos como prop contact_general_id. Si miramos el controlador, veremos que ese dato se envía directamente a Inertia, sin necesidad de consultar una Rest API para llenar la información. Esto funciona igual si es un prop o una variable definida en el apartado data; lo importante es que los datos lleguen al componente.
Una consulta muy común es: "¿Si quiero hacer una petición para obtener cierta información, debo usar Axios o Rest API?" La respuesta es: no necesariamente.
Inertia vs Axios
Cuando empleamos Inertia, no es necesario realizar peticiones adicionales con Axios o fetch. Por ejemplo, si estamos armando un componente de listado, podemos llenar la información directamente con las props enviadas desde Laravel. Esto ahorra tiempo y simplifica la comunicación entre el backend y Vue.
Eso sí, la respuesta que obtenemos al enviar datos mediante Inertia puede ser más limitada que la de Axios; no tenemos, por ejemplo, un listado completo de errores de formulario. Pero esto está bien, porque el objetivo de Inertia es evitar implementar una Rest API completa y realizar múltiples peticiones desde el frontend.
router.post('/users', form)¿Cuándo usar Inertia y cuándo una Rest API?
Otro punto importante es decidir si conviene usar Inertia o crear directamente una Rest API. Mi opinión personal es que depende del futuro de la aplicación:
- Si la aplicación va a migrar a otra tecnología, como una aplicación móvil o de escritorio, es recomendable crear una Rest API.
- Si la aplicación se queda solo como web, Inertia es suficiente y nos ahorra mucho trabajo.
Por ejemplo, en mi proyecto de Academia, que está desarrollado en Laravel con Vue, opté por crear una Rest API. Esto me permitió migrar posteriormente la aplicación a Flutter y me ahorró al menos un 40% del trabajo.
- Ya tenía la estructura de la Rest API y podía reutilizar los recursos.
- Podía revisar fácilmente el formato de las consultas mediante el Network en el navegador.
- Me permitió construir rápidamente nuevas pantallas en Flutter, sin necesidad de replicar la lógica de Vue con Inertia.
Si hubiera usado Inertia, habría tenido más trabajo:
- Crear la aplicación en Vue con Inertia.
- Crear la Rest API para migrar a Flutter.
- Replicar componentes y métodos, generando redundancia y más mantenimiento.
Por eso, en casos donde se planea migrar o tener varias plataformas, considero que es mejor crear una Rest API desde el inicio.
Si, en cambio, no planeas migrar la aplicación y solo quieres comunicación directa entre Laravel y Vue, usar Inertia es suficiente y evita hacer peticiones Axios innecesarias.
Acepto recibir anuncios de interes sobre este Blog.
Te doy MIS motivos de cuando debes de emplear una Rest API o Laravel Inertia y adicionalmente, comento la importancia de conocer como funciona la herramienta (Inertia) para poder aprovecharla y evitar confusiones implementando hibridos (Inertia + Rest API)