Коллеги, добрый вечер!
На каком уровне в Symfony перехватывать ошибки, что бы сервер отвечал всегда валидным JSON.
Идея заключается в том, что при любом исходе, клиент всегда получал JSON определённой структуры.
Например:
/database.getCityById?id=3538
{
"data": {
"id": 3538,
"name": "Воронеж",
"region": {
"id": 3529,
"name": "Воронежская обл."
},
"country": {
"name": "Россия",
"id": 3159
}
},
"code": 0
}
Но в какой-то момент, что, то произошло, например база данных дала клину или что-то ещё.
Фреймворк перехватывает ошибку.
Информацию записывает в лог, а клиенту что-то типа
{
"code": 1,
"msg": "unknown error"
}
Мне нужно это для того что бы Nuxt всегда правильно реагировал на подобного рода ошибки.
Мой первый вариант:
Перехват на самом верхнем уровне
try {
$response = $kernel->handle($request);
} catch (Exception $e) {
$response = new JsonResponse(["code" => 1]);
$response->send();
}