Страница 1 из 2
Debug panel для api запросов
Добавлено: 2019.10.10, 11:23
Доброго дня. Иногда хочется просмотривать лог выполнения запросов для запросов к API так же как это делается для не API.
но когда я делаю запросы к API на домен
мне приходится только догадываться что там происходит
т.к. сюда они не попадают
Если возможность также просматировать логи по этим запросам ?
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 11:26
yiiliveext
Что мешает открыть api.supersite.local/debug
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 11:30
я пробывал но получил вот это
Код: Выделить всё
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
Код: Выделить всё
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
Страница не найдена
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 11:57
yiiliveext
Если бекенд на другом сервере, то добавтьте свой айпи в дебагере в список разрешенных
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 11:59
да нет все у меня на локали просто в 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
пишет что нет такой страницы. Проект не я поднимал , работаю уже с готовым наверное что-то переопределено и он не пробивает этот маршрут
в правила добавил это маршрут но он его не ищет
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 12:32
yiiliveext
Так может там SiteController нет?
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 12:38
я создал другой контроллер т.к. это был под RestController занят
создал TestController в нем actionTest получаю ответ пустой json ответ
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 13:18
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 перенестите из стандартного шаблога приложения. В итоге должно вывести стандартную страницу с тулбаром дебагера.
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 13:26
сделал но как говорил в конфиге где переопределен 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
Код: Выделить всё
'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
[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;
}
},
Re: Debug panel для api запросов
Добавлено: 2019.10.10, 14:15
спасибо)))
но при открытии дебаг панели теперь вот эта напасть
Код: Выделить всё
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',
],