Здравствуйте. Встал такой интересный вопрос. Я всегда писал приложения на php с mvc фреймворком, и рендерил html страницу тем же фреймворком. А теперь задумался и понял что это не круто, и хочется разделить backend и frontend. Под backend подразумеваю тот же Laravel, а под frontend Angular. Но у меня такое ощущение, что я не правильно понимаю саму суть взаимодействия. Как я понимаю: есть api на Laravel, и Angular посылает запрос через директиву $http, получает ответ и выводит его на страницу,или обрабатывает, тут уже как угодно. Так ли все это? И стоит ли вообще игра свеч? Просто как мне кажется, что это будет изначально правильная архитектура, безумно красивое api, самоудовлетворение, счастье, радость и возможность расширяться до мобильных приложений и т.п.
Как правило, если люди следуют определенной архитектуре/парадигме/принципам только ради какой-то "красивости", то вскоре разгребают кучу проблем. Поразмышляйте, будет ли разработка быстрее/качественнее, обоснуйте такой подход экономически. И если все сойдется, то имеет смысл.
Код должен быть читаем и масштабируем, все остальное как правило уже личные хотелки программистов, ничем не подкрепленные.
В общем то да. Тот же laravel MVC, в принципе итак все поделено на "логику и представление". а на чем у вас будет это самое "представление" уже не суть.
у вас в любом случае бэкенд и фронтэнд разделён, вы их так-то даже на разных языках пишете).
можно рендерить ответ на сервере, можно разработать приложение которое бы данные грузило и создавало внешний вид уже на клиенте.
Но нужно понимать что тогда человеку чтоб увидеть ответ, нужно в начале загрузить это приложение.
Оба подхода имеют место быть.
отдавать на запросы уже готовый HTML это тоже стоящая вещь, позволяет быстро сформировать простую страницу.
В твиттере например рендерят всё на серевере, тк считают что такой способ для их сервиса больше подходит.
Хотя я за внедрение SPA приложений (одностраничные приложения) - это позволяет не только снизить нагрузку на сервера, переложив часть работы на клиента, но и сделать более продвинутые интерфейсы, с гладкой плавной подзагрузкой данных. Ну и да для масштабирования сервиса возможность отделять части приложения не заботясь о сборке на сервере, крайне полезна.
Вы все правильно понимаете.
Гонять по проводам JSON и javascript вместо HTML прагматичней и конструктивней, однако идет несколько вразрез с первоначальной идеей http. Этого не любят поисковые роботы и SEO продвижение ощутимо усложняется.
Это хорошо для сервиса и не очень для ресурса.