首页 > 解决方案 > 在 API 开发中使用 Laravel 请求类有什么好处?

问题描述

在开发 RESTful API时使用 laravel requests 类来存储更新 方法有什么好处吗?还是我必须做出自定义Validator::make响应?

我在修改失败请求的响应格式以遵循一些开发标准要求时遇到了困难。

我们可以从 API 的请求类修改失败的响应格式吗?

标签: laravelapi

解决方案


我更喜欢独立于请求类使用,因为至少有一个好处:更清晰的代码。

您可以像这样生成响应(这是我的解决方案,也许有更多更好的解决方案。我使用此解决方案仅返回一个验证错误而不是全部。您可以根据需要修改它):

在您的表单请求类中添加此方法:

protected function failedValidation(Validator $validator)
    {
        $this->validator = $validator;

        foreach ($validator->messages()->getMessages() as $key => $value) {
            $first_messages_only[$key]  = $value[0];
        }

        throw new ValidationException($first_messages_only);
    }

然后在您的异常处理程序类中,在您的render()方法中编写此代码块:

if ($exception instanceof ValidationException) {
            $response = [
                'status' => false,
                'message' => trans('api.general.validation_not_passed'), // $exception->getMessage()
                'data' => ['validation_errors' => $exception->validator]
            ];
            return response()->json($response);

        }

推荐阅读