Я хочу использовать свой собственный API (с аутентификацией) для моего сайта, который находится в том же домене. Например, если пользователь сайта хочет увидеть список сообщений:
1. Он переходит к mywebsite/posts
, таким образом делая запрос GET /mywebsite/posts
.
2. Веб-приложение отправляет запрос и вызывает функцию listPosts()
WebsiteController
.
3. Функция listPosts()
создает новый запрос к API следующим образом:
$token = 'd0aE73j...';
$request = Request::create('/api/posts', 'GET', [], [], [], [
'Authorization' => 'Bearer '.$token, //The header for authentification
'Accept' => 'application/json', //The header supposed to prevent the error below
], []);
$response = Route::dispatch($request);
4. Результат запроса в формате JSON передается и отображается в виде списка сообщений:
return view('mywebsite.listposts')->with('listPosts',$response);
У меня проблема в 3. , запрос возвращает ошибку:
InvalidArgumentException: маршрут [логин] не определен. в файле C: [...] \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ UrlGenerator.php в строке 370
Что я хочу знать:
1) Как сделать правильный HTTP-запрос с заголовками к моему собственному API,
2) Как вернуть JSON вместо этой ошибки, если Accept: application/json
отсутствует.
Спасибо за вашу помощь.