¿Es una buena idea codificar una aplicación web y su API en una sola aplicación Laravel?

Solución perfecta:

Divide y vencerás.

Si puede separar las cosas y administrarlas por separado, hágalo. Si crea una API REST que maneja el proceso real, puede escribir cualquier cantidad de front-end para eso.

El escenario que mencionó (no poder hacer que el front-end fuera de línea, sin hacer lo mismo para la API) es en realidad una buena razón por la que no debe mezclar la API pública y la aplicación.

Como ya ha escrito una API, recomendaría usar un lenguaje y un marco que sea específicamente adecuado para crear front-end delgados (por ejemplo: Javascript / AngularJS.) Para hacer la parte de la aplicación.

Si es necesario, puede crear frontales delgados que también funcionarían en otras plataformas.

La siguiente mejor cosa:

Sin embargo, una vez dicho esto, si su producto o servicio está siendo arrancado, recomendaría abstenerse de dividirlo en varias partes como lo recomendé anteriormente. En la etapa inicial, su enfoque debe ser ganar clientes y no producir el producto perfecto. Puede dividir el sistema en partes más pequeñas más adelante.

Se trata de sopesar lo que es razonable para el momento actual.

Ya has señalado por qué dividir tu API y tu aplicación web es probablemente algo bueno. Tenerlos como servicios separados le permitirá implementarlos de forma independiente e incluso ejecutarlos en servidores separados si el rendimiento se convierte en un problema en el futuro. Por otro lado, también agregará más complejidad cuando se trata de manejar migraciones de bases de datos, por ejemplo, por lo que debe sopesar los pros y los contras.

Debido a que llevará tiempo y esfuerzo, podría ser mejor tratar de resolver su problema de una manera diferente. Tal vez busque implementaciones de tiempo de inactividad casi cero para que su API solo tenga una cantidad mínima de tiempo de inactividad. Eche un vistazo a Deployer (Herramienta de implementación para PHP), por ejemplo.

More Interesting

¿Qué opinas de mi aplicación web?

¿Qué es un servidor front-end?

¿Por qué JavaScript y Python son tan populares, incluso para aplicaciones web a gran escala, a pesar de todo el odio por ser tipeado dinámicamente?

¿Cómo agrego imágenes aleatorias en una página web sin o con la ayuda de Backstretch en jQuery?

¿Cuál es la mejor manera de incluir una galería de videos en un sitio web?

¿Cuáles son algunos de los escenarios que no se pueden probar usando la automatización en una aplicación web?

¿Es escalable la alta demanda de inmediatez y sincronicidad en las redes sociales?

¿Cuál es la herramienta de desarrollo rápido más rápido para sitios web?

¿Por qué las aplicaciones nativas en Android tienen una gran demanda en lugar de las aplicaciones híbridas y web?

¿Qué lado del cliente JS será el mejor para una aplicación web a gran escala, en términos de rendimiento y usabilidad?

Si tomas un trabajo de desarrollador front-end, ¿puedes obtener un puesto completo de Rails o JavaScript algún día, o te encasillaría para hacer principalmente front-end a menos que hicieras un estudio sustancial?

¿Cuál es la mejor manera de agregar anotaciones a un video en la web que no creó?

¿Cuánto debo cobrar por un proyecto de diseño de interfaz de usuario?

¿Cuáles son las mejores herramientas / marcos para un desarrollador de back-end para construir rápidamente una interfaz de usuario web?

¿Existe una aplicación en Salesforce.com que pueda completar la ciudad / estado / país líder a partir del código de área del número de teléfono?