laravel - 在 API 开发中使用 Laravel 请求类有什么好处?
问题描述
在开发 RESTful API时使用 laravel requests 类来存储和更新 方法有什么好处吗?还是我必须做出自定义Validator::make响应?
我在修改失败请求的响应格式以遵循一些开发标准要求时遇到了困难。
我们可以从 API 的请求类修改失败的响应格式吗?
解决方案
我更喜欢独立于请求类使用,因为至少有一个好处:更清晰的代码。
您可以像这样生成响应(这是我的解决方案,也许有更多更好的解决方案。我使用此解决方案仅返回一个验证错误而不是全部。您可以根据需要修改它):
在您的表单请求类中添加此方法:
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);
}
推荐阅读
- javascript - 在 NodeJS 中使用 JSON.stringify 时出现问题
- kibana - 用于 kibana 等的 K8S NGINX 入口反向代理规则
- javascript - 种族条件?在自定义 Google 地图组件中
- linux - 变量中的 awk 运算符
- ssl - 如何连接到安全网站 (https:)?
- javascript - 在 Quasar 中使用 Dexie 导出 IndexedDB 数据库
- gzip - 解压 tar.gz 文件会导致错误:错误不可恢复
- java - 春季启动自动接线服务为空
- git - git diff changes with name only 正确显示更改,但不包括从开始的提交中更改的文件
- docker - 为什么我不能从我的 docker 容器 curl 到远程服务