Всем привет коллеги.
На практике часто встречаю абсолютно разные подходы к обработке ошибок, в частности в api сервисов.
Где-то генерируют исключения, где-то возвращают в джейсоне массив типа такого
if (!Yii::$app->request->isPost) {
return ['result' => 'error', 'message' => 'POST only', 'code' => 405];
}
if (!$guid = Yii::$app->request->post('guid')) {
return ['result' => 'error', 'message' => 'Guid required', 'code' => 400];
}
if (!$reason = Yii::$app->request->post('reason')) {
return ['result' => 'error', 'message' => 'Reason required', 'code' => 400];
}
Как вообще правильно делать? В api кидать exception а в клиенте его ловить try-catch и обрабатывать? Все ли эксцепшены нужно вообще кидать и обрабатывать? Например в данном примере, где отсутствие какого-то параметра в post является критичным, как правильно поступать? Если не трудно, опишите, что на ваш взгляд в этом случае лучше и правильнее, как бы вы сделали на стороне API и на стороне клиента (другой микросервис на php).
Спасибо.