Тестирование вызова 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 = "[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);

?>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
1 229
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку вы выполняете перенаправление, данные не доступны напрямую в представлении как переменная. Однако он должен быть в сеансе, поэтому вы можете попробовать это в своем представлении:

dd(session('login'));

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

Хм, это имеет смысл, но, похоже, показывает ноль

Geoff_S 18.12.2018 17:14

Есть ли лучший способ попытаться вернуть это и сбросить, просто чтобы проверить, возвращает ли он то, что я ожидаю в вызове? Это функция POST, но мне нужно увидеть текст ответа.

Geoff_S 18.12.2018 17:14

Вы можете просто сделать дамп в своем контроллере, прежде чем переходить к просмотру.

Peter 18.12.2018 17:15

поэтому я думаю, что это привело меня к чему-то, но в моей ошибке страницы теперь просто отображается мой URL-адрес с /login/?client_id=0, но я не вижу, что полезная нагрузка была передана?

Geoff_S 18.12.2018 17:34

Точно сказать не могу. Вы можете использовать dd($result) в своем методе Authorize.php post(), чтобы увидеть, что вы получаете.

Peter 18.12.2018 17:50

Другие вопросы по теме