本文已参与「新人创作礼」活动,一起开启掘金创作之路。
不统一接口返回值
统一返回值类型是接口开发中的一种良好的开发习惯,统一接口返回值的目的是为了加快开发速率以及形成团队良好的代码规范。举个例子,请看下面这张图:
上图中有三个接口,返回值类型分别是String,Map,Object,三个接口本身都没有问题,这也是没有参加过工作的同学最常见的写法,前端要什么类型我返回什么类型。这么写可以吗?其实也可以,上图已经返回预期的值。
工作中我们很少会这么去定义返回值,这么写是不利于开发进度与团队协作的,为什么这么说呢?缘由如下:
- 于后端而言,所有接口返回值类型统一,就会显得代码更规范
- 与前端而言就相对重要了,一个接口返回一种类型,那么前端就需要写不同的代码来处理不同的返回结果, 如果后端统一返回值,前端就可以写一个统一的处理返回值的代码
统一接口返回值
看看统一接口返回值之后,前端接收的值是什么样的:
通过两张图的对比,其实后端代码并没有大的改变,更改最大的点在于三个接口的返回值类型都变成了我定义的RestResult,然后前端接收的值就赏心悦目了,前端处理接收的数据时,只要获取key为data的value值即可,好不好相信都能看的见。
总结
统一接口返回值是企业中最基本的要求,使用它的原因不止于上文,比如msg可以告诉前端调用失败还是 成功,code可以告诉前端是做种类型的错误(404,500等),它的编写方式有很多,比如工厂模式创建(本文采用的方法),编写一个统一返回值的类等等。方式有很多,如果大家想了解如何设计一个统一返回值的类,请评论区留言,以后会专门出一篇文章来说明