В настоящее время я создаю приложение для микросервиса Financial с использованием микро-фреймворка Laravel / Lumen. Все работает без ошибок Моя проблема сейчас в том, что я пытаюсь сделать сетевой запрос к своим внутренним службам через вызов Api от ApiGateway
с использованием GuzzleHttp
клиента. Проблема в том, что когда я делаю запрос к внутренней службе, он всегда выдает исключение ClientException .
ClientException .
Ошибка клиента: GET http://127.0.0.1:8081/v1/admin
: 401
Unauthorized
ответ: {"error": "Unauthorized.", "Code": 401}
Я попытался сделать сетевой запрос к тем же внутренним службам, используя почтальон ; и работает нормально. Однако по какой-то причине все еще не работает с GuzzleHttp
. Я не знаю, что я делаю не так. Пожалуйста, ваша помощь будет оценена.
Вот httpClient.php в ApiGateway.
//Constructor method
public function __construct() {
$this->baseUri = config('services.auth_admin.base_uri');
}
public function httpRequest($method, $requestUrl, $formParams = [], $headers = []) {
//Instantiate the GazzleHttp Client
$client = new Client([
'base_uri' => $this->baseUri,
]);
//Send the request
$response = $client->request($method, $requestUrl, ['form_params' => $formParams, 'headers' => $headers]);
//Return a response
return $response->getBody();
}
//Internal Service Communication in ApiGateway**
public function getAdmin($header) {
return $this->httpRequest('GET', 'admin', $header);
}
InternalServiceController.php
public function getAdmin(Request $request) {
return $this->successResponse($this->authAdminService->getAdmin($request->header()));
}
Я использую версию Lumen: 5.8 и версию GuzzleHttp: 6.3