Страница 1 из 2

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

Добавлено: 2019.10.10, 11:23
an.viktory@gmail.com
Доброго дня. Иногда хочется просмотривать лог выполнения запросов для запросов к API так же как это делается для не API.

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

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

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

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

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

supersite.local/debug
Если возможность также просматировать логи по этим запросам ?

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

Добавлено: 2019.10.10, 11:26
yiiliveext
Что мешает открыть api.supersite.local/debug

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

Добавлено: 2019.10.10, 11:30
an.viktory@gmail.com
я пробывал но получил вот это

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

An Error occurred while handling another error:
yii\base\InvalidArgumentException: Response content must not be an array. in ../yii2/web/Response.php:

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

Добавлено: 2019.10.10, 11:45
yiiliveext
debugger подключен в конфиге? приложение api работает в dev?

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

Добавлено: 2019.10.10, 11:53
an.viktory@gmail.com

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

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

Логи в runtime/debug пишутся

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

Добавлено: 2019.10.10, 11:55
yiiliveext
А что выводит api.supersite.local?
Попробуйте вывести site/index

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

Добавлено: 2019.10.10, 11:56
an.viktory@gmail.com
Страница не найдена

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

Добавлено: 2019.10.10, 11:57
yiiliveext
Если бекенд на другом сервере, то добавтьте свой айпи в дебагере в список разрешенных

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

Добавлено: 2019.10.10, 11:59
an.viktory@gmail.com
да нет все у меня на локали просто в nginx прописаны разные домены для back и api
может я чего-то не догоняю ?

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

Добавлено: 2019.10.10, 12:17
yiiliveext
выведите на главной '/' => 'site/index' (если нет, то создайте контроллер SiteController и в нем действие index), посмотрите, будет ли внизу панель дебагера.

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

Добавлено: 2019.10.10, 12:28
an.viktory@gmail.com
пишет что нет такой страницы. Проект не я поднимал , работаю уже с готовым наверное что-то переопределено и он не пробивает этот маршрут
в правила добавил это маршрут но он его не ищет

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

Добавлено: 2019.10.10, 12:32
yiiliveext
Так может там SiteController нет?

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

Добавлено: 2019.10.10, 12:38
an.viktory@gmail.com
я создал другой контроллер т.к. это был под RestController занят
создал TestController в нем actionTest получаю ответ пустой json ответ

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

Добавлено: 2019.10.10, 13:18
yiiliveext
an.viktory@gmail.com писал(а): 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 перенестите из стандартного шаблога приложения. В итоге должно вывести стандартную страницу с тулбаром дебагера.

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

Добавлено: 2019.10.10, 13:26
an.viktory@gmail.com
сделал но как говорил в конфиге где переопределен Response он пишет

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

An Error occurred while handling another error:
yii\base\InvalidArgumentException: Response content must not be an array

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

Добавлено: 2019.10.10, 13:31
yiiliveext
Что значит переопределен Response? Вы используете свою реализацию?
Отключите дебагер в конфиге и попроюуйте выполнить тот же actionTest

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

Добавлено: 2019.10.10, 13:37
an.viktory@gmail.com

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

 '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 то получил пустой ответ без дебаг панели. Думаю не стоит дальше пытаться так можно сломать то что есть. Извиняюсь за отнятое время. Думал что все гораздо проще.

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

Добавлено: 2019.10.10, 14:07
yiiliveext
an.viktory@gmail.com писал(а): 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;
                }
            },

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

Добавлено: 2019.10.10, 14:15
an.viktory@gmail.com
спасибо)))
но при открытии дебаг панели теперь вот эта напасть

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

Invalid Argument – yii\base\InvalidArgumentException
The file or directory to be published does not exist: /var/www/supersite.local/vendor/bower/bootstrap/dist

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

Добавлено: 2019.10.10, 14:18
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',
    ],