Laravel запускает клиент Guzzle по умолчанию

Я хотел бы загрузить клиент Guzzle по умолчанию для соединения с Github. В настоящее время я настраиваю клиента по умолчанию в контроллере следующим образом:

public function __construct()
{
$this->middleware(function ($request, $next) {
$this->client = new Client([
'base_uri' => 'https://api.github.com',
'headers' => [
'Authorization' => 'token ' . $this->getAccessToken()
]
]);

return $next($request);
});
}

Я обертываю его закрытием промежуточного программного обеспечения, потому что в противном случае вошедший в данный момент пользователь еще не доступен. getAccessToken нужен Auth::user,

Как бы я переписал это универсальному клиенту для повторного использования? Судя по документации от Laravel, хорошей идеей может быть GithubGuzzleClient в контейнер через ServiceProvider:

https://laravel.com/docs/5.5/providers#writing-service-providers

Это похоже на ServiceProviders связаны в контейнер еще до того, как промежуточное программное обеспечение будет запущено. Так как бы я настроить общий ServiceProvider который также может получить доступ к зарегистрированному пользователю, чтобы установить правильное Authorization заголовок на свежем экземпляре клиента?

редактировать

После некоторой проверки документа кажется, что это можно сделать только через промежуточное ПО. Я думаю, было бы целесообразно создать промежуточное программное обеспечение, которое внедряет предварительно настроенный Guzzle клиент, так как на данный момент я должен иметь Auth::user если мое специальное промежуточное ПО работает последним в цепочке.

Было бы даже неплохо создать группу промежуточного программного обеспечения для всех маршрутов, которые нуждаются в этом Guzzle экземпляр, который был предопределен для вызовов Github API.

Если кто-нибудь знает лучший способ, пожалуйста, дайте мне знать.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector