正确响应,也想在 response 时加入 code 字段,应该如何修改?
错误的时候,可以通过HttpException,在返回错误信息中添加code字段。
如果是请求正确,我也想返回code字段,此时应该如何修改?我百度找了一下没有提及
高认可度评论:
跟我司的需求一样,我司的需求是不管成功失败,http_status都是200,一定要返回code和message,成功code返回0,失败code返回自定义code码。
然后我们的做法是异常建了一个异常类,laravel5.5可以直接在自建的异常类渲染,就直接返回code和message了。
正确相应是,新建了一个SuccessResource,在该SuccessResource中返回code和message,
再在helpers中写一个success()方法,返回 SuccessResource。
当然正确相应也分情况,操作成功是 return success().
带有参数是 return success($data);
用的laravel5.5+的apiResource,新建BaseResource,添加public $additional = [ 'code'=>0,'message'=>'success'];
其他资源类继承该类,这样返回详情时 return new UserResource($user);会带code和message。
列表和分页,我司的要求是返回code、message、data、meta,meta中是4个值,这样meta是要自己重新封装的,在封装meta时,将code和message一起写上就可以。
在helpers中封装meta:
然后返回分页写法是
当然最简单,也最不依赖,就是直接返回数组啦,return ['code'=>0,'message'=>'success'];
可以选择手写或者包装一个 trait
@风吹枫落 不会改。。。所以发出来请教
@XYD 介绍 看看这个能满足不
REST 风格的接口,通过状态码判断就行,不建议在每个body中增加code
手动封装一个trait或可以考虑使用Resources
得到结果
跟我司的需求一样,我司的需求是不管成功失败,http_status都是200,一定要返回code和message,成功code返回0,失败code返回自定义code码。
然后我们的做法是异常建了一个异常类,laravel5.5可以直接在自建的异常类渲染,就直接返回code和message了。
正确相应是,新建了一个SuccessResource,在该SuccessResource中返回code和message,
再在helpers中写一个success()方法,返回 SuccessResource。
当然正确相应也分情况,操作成功是 return success().
带有参数是 return success($data);
用的laravel5.5+的apiResource,新建BaseResource,添加public $additional = [ 'code'=>0,'message'=>'success'];
其他资源类继承该类,这样返回详情时 return new UserResource($user);会带code和message。
列表和分页,我司的要求是返回code、message、data、meta,meta中是4个值,这样meta是要自己重新封装的,在封装meta时,将code和message一起写上就可以。
在helpers中封装meta:
然后返回分页写法是
当然最简单,也最不依赖,就是直接返回数组啦,return ['code'=>0,'message'=>'success'];
再来自推一下,年前发现了更好的做法,小白折腾服务器(六):使用后置中间件记录响应日志以及自定义接口成功返回格式
供参考:)
return response()->json($content, 200);这样就行了