Я тестирую вызов 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 = "[email protected]";
$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);
?>






Поскольку вы выполняете перенаправление, данные не доступны напрямую в представлении как переменная. Однако он должен быть в сеансе, поэтому вы можете попробовать это в своем представлении:
dd(session('login'));
https://laravel.com/docs/5.7/redirects#redirecting-with-flashed-session-data
Есть ли лучший способ попытаться вернуть это и сбросить, просто чтобы проверить, возвращает ли он то, что я ожидаю в вызове? Это функция POST, но мне нужно увидеть текст ответа.
Вы можете просто сделать дамп в своем контроллере, прежде чем переходить к просмотру.
поэтому я думаю, что это привело меня к чему-то, но в моей ошибке страницы теперь просто отображается мой URL-адрес с /login/?client_id=0, но я не вижу, что полезная нагрузка была передана?
Точно сказать не могу. Вы можете использовать dd($result) в своем методе Authorize.php post(), чтобы увидеть, что вы получаете.
Хм, это имеет смысл, но, похоже, показывает ноль