Y sí, FB tiene una app dedicada, pero también es por si sola alrededor del 30% del tráfico de internet, del cual mucho es desde móviles. La app dedicada tiene una función clara, optimizar esos accesos.
Acabo de abrir esa página usando el modo adaptativo del inspector del navegador y tu web no es adaptable, por lo cual usarla desde móvil es un horror. Deberías plantearte (y plantearle al cliente) si te merece la pena modificar la vista para que funcione en móviles, antes de reescribir todo tu sistema para hacer una app real
Las validaciones deberían estar en tu modelo. Tu modelo debería estar escrito en Eloquent, separado de los controladores y de las vistas.
OK, bien. Si ese es el camino que realmente consideras correcto, reestructura tu código para separar modelo y vista; pon todas las validaciones en el modelo, y crea una nueva vista para la API.
En ese caso, y como ya te han dicho, estarías abriendo tu base de datos a accesos públicos, y metiendo tu nombre de usuario y contraseña de la BdDD en la app; lo cual quiere decir que cualquiera con acceso a esa app y un mínimo de conocimiento de informática podría encontrar el usuario y contraseña y acceder a tu base de datos libremente. Incluyendo las cuentas de usuario.
Oh, puedes hacerlo. De hecho, si entiendo bien, has hecho algo parecido en tus controladores actuales. El problema es el que tienes ahora; tus controladores actuales hacen las verificaciones; necesitas nuevos controladores, tienes que reescribir tus validaciones.
Si las validaciones estuviesen en el modelo, no tendrías que reescribirlas ahora.
Modelo: accede a tu BdDD, incluye todas las validaciones necesarias, etc. Controlador: Hay uno por ruta, lo único que hace es cargar el modelo apropiado y llamar a una vista para mostrarlo. Vista: muestra los datos (normalmente en HTML oJson)
El Modelo no se toca, es el mismo para todas tus versiones.
Api: Modelo: accede a tu BdDD, incluye todas las validaciones necesarias, etc. Controlador: Hay uno por ruta, lo único que hace es cargar el modelo apropiado y llamar a una vista para mostrarlo. Vista: muestra los datos (Json)