Debug panel для api запросов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Debug panel для api запросов

Сообщение [email protected] »

Доброго дня. Иногда хочется просмотривать лог выполнения запросов для запросов к API так же как это делается для не API.

Код: Выделить всё

supersite.local/debug
но когда я делаю запросы к API на домен

Код: Выделить всё

api.supersite.local
мне приходится только догадываться что там происходит
т.к. сюда они не попадают

Код: Выделить всё

supersite.local/debug
Если возможность также просматировать логи по этим запросам ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

Что мешает открыть api.supersite.local/debug
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

я пробывал но получил вот это

Код: Выделить всё

An Error occurred while handling another error:
yii\base\InvalidArgumentException: Response content must not be an array. in ../yii2/web/Response.php:
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

debugger подключен в конфиге? приложение api работает в dev?
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

Код: Выделить всё

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
ДА все как для backend

Логи в runtime/debug пишутся
Последний раз редактировалось [email protected] 2019.10.10, 11:55, всего редактировалось 1 раз.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

А что выводит api.supersite.local?
Попробуйте вывести site/index
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

Страница не найдена
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

Если бекенд на другом сервере, то добавтьте свой айпи в дебагере в список разрешенных
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

да нет все у меня на локали просто в nginx прописаны разные домены для back и api
может я чего-то не догоняю ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

выведите на главной '/' => 'site/index' (если нет, то создайте контроллер SiteController и в нем действие index), посмотрите, будет ли внизу панель дебагера.
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

пишет что нет такой страницы. Проект не я поднимал , работаю уже с готовым наверное что-то переопределено и он не пробивает этот маршрут
в правила добавил это маршрут но он его не ищет
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

Так может там SiteController нет?
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

я создал другой контроллер т.к. это был под RestController занят
создал TestController в нем actionTest получаю ответ пустой json ответ
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

[email protected] писал(а): 2019.10.10, 12:38 я создал другой контроллер т.к. это был под RestController занят
создал TestController в нем actionTest получаю ответ пустой json ответ
Дейсвие должно быть такое

Код: Выделить всё

 public function actionTest()
    {
        Yii::$app->response->format = \yii\web\Response::FORMAT_HTML;
        return $this->render('index');
    }
layout/main.php и view/site/index.php перенестите из стандартного шаблога приложения. В итоге должно вывести стандартную страницу с тулбаром дебагера.
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

сделал но как говорил в конфиге где переопределен Response он пишет

Код: Выделить всё

An Error occurred while handling another error:
yii\base\InvalidArgumentException: Response content must not be an array
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

Что значит переопределен Response? Вы используете свою реализацию?
Отключите дебагер в конфиге и попроюуйте выполнить тот же actionTest
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

Код: Выделить всё

 'response' => [
            'class' => 'common\modules\statistics\components\StatisticsResponse',
            'format' => yii\web\Response::FORMAT_JSON, // стандартные ошибки в json (Page Not Found)
            'charset' => 'UTF-8',
            'on beforeSend' => function ($event) {

                $response = $event->sender;
                if ($response->data !== null) {
                    $response->data = [
                        'success' => $response->isSuccessful,
                        'data' => $response->data,
                    ];
                } else {
                    $response->statusCode = 200;
                }
            },
            'formatters' => [
                'json' => [
                    'class' => 'yii\web\JsonResponseFormatter',
                    'prettyPrint' => YII_DEBUG,
                    'encodeOptions' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE,
                ],
            ],
        ],
        
когда закомментировал переопределение Response то получил пустой ответ без дебаг панели. Думаю не стоит дальше пытаться так можно сломать то что есть. Извиняюсь за отнятое время. Думал что все гораздо проще.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

[email protected] писал(а): 2019.10.10, 13:37 когда закомментировал переопределение Response то получил пустой ответ без дебаг панели. Думаю не стоит дальше пытаться так можно сломать то что есть. Извиняюсь за отнятое время. Думал что все гораздо проще.
Рано сдаетесь))
beforeSend обработчик и генерирует вашу ошибку.
Замените на это и все будет ОК

Код: Выделить всё

'on beforeSend' => function ($event) {

                $response = $event->sender;
                if ($response->data !== null && $response->format ==  \yii\web\Response::FORMAT_JSON) {
                    $response->data = [
                        'success' => $response->isSuccessful,
                        'data' => $response->data,
                    ];
                } else {
                    $response->statusCode = 200;
                }
            },
[email protected]
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Debug panel для api запросов

Сообщение [email protected] »

спасибо)))
но при открытии дебаг панели теперь вот эта напасть

Код: Выделить всё

Invalid Argument – yii\base\InvalidArgumentException
The file or directory to be published does not exist: /var/www/supersite.local/vendor/bower/bootstrap/dist
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Debug panel для api запросов

Сообщение yiiliveext »

В конфиге комоузера (composer.json) пропишите asset-packagist.org

Код: Выделить всё

"repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]
И сделайте composer update

И алиасы в конфиге

Код: Выделить всё

'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],
Ответить