Я хотел бы создать сайт с Angular (внешний интерфейс) и Laravel (внутренний интерфейс). Каков наилучший способ соединить эти два? Как они общаются? При поиске я нашел решения более двух лет, поэтому мне интересно, есть ли предпочтительный способ сделать это сейчас.
Что я сейчас делаю: Я создал файлы Model, Controller и Migration в laravel и в LanguagesController Я вызываю метод ":: all" для получить все данные из XAMPP:
public function index()
{
return response()->json(Languages::all(), 200, ['Content-Type' => 'application/json;charset=UTF-8', 'Charset' => 'utf-8'],
JSON_UNESCAPED_UNICODE);
}
После этого я создаю для него маршрут в api. php:
Route::get('/languages', "LanguagesController@index");
Так что теперь я могу позвоните www.laravelfirsttry.com/api/languages, чтобы получить все данные из таблицы языков.
В Angular я сделал следующее: Создаю language-service , которая отправляет запрос на Laravel:
private baseUrl = 'http://www.laravelfirsttry.com/api/languages';
constructor(private http: HttpClient) { }
getLanguages() {
return this.http.get(this.baseUrl);
}
Затем в моем компоненте я вызываю эту службу и выдаю ответ ее функции на мою переменную, а затем просто обрабатываю представление после этого:
constructor(private languageService: LanguageService) {
this.getLanguages();
}
getLanguages(): void{
this.languageService.getLanguages()
.subscribe((res: any) => {
this.language_tabs = res;
console.log(res);
}, error => {
console.error(error);
});
}
Но проблема в том, что когда я пытаюсь это сделать, вызов API занимает относительно длительное время до окончания sh. Я загружаю свой веб-сайт, весь контент загружается, но основной компонент не виден до завершения вызова. Я думаю, что это не выглядит хорошо, и я думаю, что я сделал что-то не так.
Резюме : я создал один API в laravel Затем я называю этот API в Angular, и это довольно медленно. Как лучше всего создать приложение Angular с Laravel бэкэндом?