Comparte:
Separar proyecto laravel en backend y frontend, y asignar a diferentes personas
Como podria separar un proyecto laravel en backend y frontend....para que digamos el programador backend haga su trabajo, y luego el programador front consuma eso.....tendria que tener 2 proyectos? y que el front consuma con la api del backend? o como haria?
Por otro lado, el desarrollo del backend, lo puedes trabajar normalmente sólo que el consumo de los recursos puedes ponerlo a disposición del frontend por medios de API.
Todo esto dependerá mucho de la metodología y lógica de programación que selecciones.
Espero que esto pueda orientarte. Tengas un excelente día.
cuando pida la url en caso local se pone localhost:puerto/ruta_a_consumir, nunca he trabajado back y front separado, me podria explicar brevemente. gracias
Tu front end lo puedes tener en el mismo proyecto o externamente. Este seria un ejemplo burdo de un componente de vuejs que funciona de esa manera:
<template> <div class="container-fluid"> <div class="row m-0 mt-4"> <div class="card col-6 offset-2 border-0 shadow-sm"> <input type="text" class="bg-transparent border-0 shadow-none" placeholder="userId" id="userId"> </div> <div class="text-center"> <button class="btn btn-primary btn-md mx-2" type="button" @click="searchUser"> Search </button> </div> </div> <div class="code mt-4"> <div class="card col-3 mx-auto" v-if="user"> <div class="card-header"> <h4 class="display-5 text-primary"> {{user.name}} <span class="badge badge-danger"> {{user.id}} </span> </h4> </div> <div class="card-body"> <li v-for="(items,index) in user" :key="index"> {{index}}:{{items}} </li> </div> </div> </div> <div class="row" v-if="error"> <div class="alert alert-warning alert-dismissible fade show" role="alert"> <strong>Holy guacamole!</strong> You should check in on some of those fields below. <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> </div> </div> </template> <script> export default { mounted() { console.log('mounted'); }, data(){ return{ user:null, hasError:false } }, methods:{ searchUser:function(){ let id=document.getElementById('userId').value; axios.get('https://jsonplaceholder.typicode.com/users', {params:{id:id}}) .then(response=>{ this.user=response.data[0]; console.log(this.user); }) .catch(error=>{ this.error=true; }); } }, computed:{ error:function(){ return this.hasError; } } } </script> <style lang="scss" scoped> .navbar-icon{ font-size:20px; } input{ border:none; outline:none !important; height:3em; box-shadow:none !important; background-color:transparent !important; } .code { position:relative; min-height:250px; font-family: monospace; width:80%; margin:0 auto; background:rgba(0,0,0,0.12 ); } </style>