Git: ¿Cómo separar el control de versiones de un Backend Rest Api y la aplicación frontend con respecto a la estructura del directory?

Necesito algunos consejos de architecture sobre el control de versiones sobre cómo estructurar un backend que sirve una APLICACIÓN REST para una aplicación frontend. Mi pregunta es sobre cómo buildía mi estructura de directorys y luego iniciaré un repository de git en ellos.

En mi entender, debería mantener el frontend y back-end en dos repositorys git. Uno para el código frontend y otro para el rest api.

Por favor, ayúdame a entender cómo hago esto prácticamente. Según entiendo, tengo las siguientes opciones:

  1. Puse mi aplicación frontend en el directory public de mi back-end. Utilizo un repository de git para el backend pero .gitignore el directory public en el file .gitignore . Luego uso un git init en el directory public y control de versiones en la interfaz. Este enfoque me permite especificar un csrf token directamente a través de php en mi html inicial como un único conector.

  2. Puse mi aplicación laravel en el directory my-project/backend y mi frontend en my-project/frontend y la versión los controla así. Luego simplemente los conecto a través de la Rest API. Solo tengo que descubrir cómo resolver el problema csrf.

¿Cuál de las dos forms se recomienda? ¿Hay otras opciones que no he considerado? Esta pregunta es sobre el control de versiones y la estructura del directory.

Solutions Collecting From Web of "Git: ¿Cómo separar el control de versiones de un Backend Rest Api y la aplicación frontend con respecto a la estructura del directory?"

La estructura clásica del directory de Laravel podría verse de la siguiente manera:

 . ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── gulpfile.js ├── package.json ├── phpspec.yml ├── phpunit.xml ├── public ├── readme.md ├── resources ├── server.php ├── storage ├── tests └── vendor 

Eché un rápido vistazo al enlace que comenté, y creo que la gran pregunta es qué tan grande será su aplicación. Para la mayoría de las aplicaciones web, la estructura del proyecto definida anteriormente con un repository de git será suficiente. Si tiene un proyecto realmente a gran escala, entonces puede valer la pena mantener todo en public/ como un submodule .

Podrías ponerlos en un único repository git. En general, es mejor mantenerlo simple.