Как использовать Laravel в качестве бэкэнда для Angular SPA-приложения? - PullRequest
0 голосов
/ 02 апреля 2020

Я хотел бы создать сайт с 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 бэкэндом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...