Тестирование вызова API в контроллере / представлении laravel

Я тестирую вызов API, который у меня работает в Postman, и другие интерфейсы, созданные на основе API, но я пытаюсь получить возвращаемые значения на моем сайте laravel.

Должно быть достаточно просто, я сделал очень пустой служебный файл, который использует guzzle для доступа к URL-адресу API, и у меня есть функция для входа в систему с использованием тестовой электронной почты, пароля и идентификатора клиента (все это работает в интерфейсе API). такой как почтальон)

Я вызываю класс и функцию внутри моего authController, а затем возвращаю вызов функции в представлении, а затем сбрасываю его внутри представления.

Тем не менее, в настоящее время я получаю нулевое значение на моей странице дампа.

Есть ли что-то, чего мне здесь не хватает, возможно, в моем служебном файле. Я не думаю, что здесь должно быть что-то пропущено, но, возможно, я упускаю из виду нечто более очевидное.

Authorize.php

<?php
namespace App\Services\restAPI;

use Illuminate\Support\Facades\Auth;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ServerException;


use Session;
use Exception;

class AuthService
{

protected $baseurl;
protected $guzzleClient;

public function  __construct() {
$this->baseurl = config('http://ip.address');
$this->baseurl = rtrim($this->baseurl, '/') . '/';  // ensure trailing slash

$this->guzzleClient = new \GuzzleHttp\Client(
['verify'   => config('app.ca_pem_file'),
'headers'  => [
'Event-ID' => ACCESS_EVENT_ID
],
'base_uri' => $this->baseurl
]
);
}

public function loginGetToken(){
$password = "password";
$email = "test@thisAPI.com";
$client_id = "0";

$payload = (object)[
'password'=>(string)$password,
'email'=>(string)$email
];

$retval = $this->post('login/?client_id='.$client_id,$payload);

return $retval;
}

private function post($endpoint,$payload){

$result = $this->guzzleClient->request('POST', $endpoint, ['json'=>$payload]);
$body = $result->getBody();
return  json_decode($body);
}
}

AuthController.php

use Redirect;
use Illuminate\Http\Request;
use App\Services\restAPI\AuthService;

class AuthController extends Controller
{
public function login(Request $request)
{
$authService = new AuthService();
$login = $authService->loginGetToken();

return redirect(route('auth.login'))
->with('login', $login)
}

login.blade.php

<?php

dd($login);

?>

0

Решение

Поскольку вы перенаправляете, данные не доступны непосредственно в представлении как переменная. Это должно быть в сессии, так что вы можете попробовать это с вашей точки зрения:

dd(session('login'));

https://laravel.com/docs/5.7/redirects#redirecting-with-flashed-session-data

1

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

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

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