У меня написано два проекта, на которых реализован REST API
Последняя версия на которой все нормально работало, было 2.0.15.1
Под работало я подразумеваю (к примеру) банальное приветствие выглядит вот так - https://prnt.sc/mm03h6
Если посмотреть исходных код этой страницы - то он выдаст
Код: Выделить всё
{
"status": 1,
"data": [
"RESTful API for you!"
]
}
Вот пример - https://prnt.sc/mm06zy
А исходный код этой ругани выглядет так
Код: Выделить всё
{
"status": 1,
"data": [
"RESTful API for you!"
]
}null
я пошел смотреть - откуда эта нечисть берется...
И опытным путем увидел, что это результат вызова Yii::$app->end();
Вот вся функция
Код: Выделить всё
public function sendSuccessResponse($data = false, $additional_info = false)
{
$this->setHeader(200);
$response = [];
$response['status'] = 1;
if (is_array($data))
$response['data'] = $data;
if ($additional_info) {
$response = array_merge($response, $additional_info);
}
$response = Json::encode($response, JSON_PRETTY_PRINT);
if (isset($_GET['callback'])) {
/* this is required for angularjs1.0 client factory API calls to work */
$response = $_GET['callback'] . "(" . $response . ")";
echo $response;
} else {
echo $response;
}
Yii::$app->end();
}
Но хотел узнать, на сколько это правильно? Почему в последней версии такой загадочный эффект и как мне с ним обойтись, чтобы не нарушить дзень всех канонов программирования Yii2 и у меня в ответе не появлялся null?
Заранее спасибо