Как настроить ответ при неправильном запросе в REST API?

При обращении к /api/web/v1/users/ методом GET возвращается результат о пользователях.
Подскажите, пожалуйста, как отдать адекватный ответ с ошибкой при вызове этого метода через POST?Сейчас получаю стандартную страницу "Page not found."
  • Вопрос задан
  • 1531 просмотр
Решения вопроса 1
igorbelikov
@igorbelikov
Fullstack Developer
Кастомизация обработки ошибки описываются тут www.yiiframework.com/doc-2.0/guide-rest-error-hand....
Вот пример кода (указывается в конфиге api приложения):
'response' => [
            'class' => 'yii\web\Response',
            'format' => 'json',
            'on beforeSend' => function ($event) {
                $response = $event->sender;
                if ($response->data !== null) {
                    $data = $response->data;
                    // Error handle
                    $error = '';
                    if( ! $response->isSuccessful) {
                        if(isset($data['message'])) {
                            $error = $data['message'];
                        } elseif(isset(current($data)['message'])) {
                            $error = current($data)['message'];
                        }
                    }
                    $response->data = [
                        'status' => $response->isSuccessful,
                        'code' => $response->statusCode,
                        'error' => $error,
                    ];
                    if($response->isSuccessful) {
                        $response->data['data'] = $data;
                    }
                    // $response->statusCode = 200;
                }
            },
        ],
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы