问题1比如一个接口:提供多行数据,最后一行显示总计或者平均值数据是一定要返回的,就是最后的总计或者平均值是后端计算好直接返回,还是客户端自己通过数据自己计算
问题2比如一个银行卡账户接口:数据库:表1:卡号,银行id表2:银行id,银行名称提供的接口(要显示卡号,银行名称)方法1
返回2个对象:卡号和银行id对应的对象,银行id和银行名称对应的对象。客户端自己组装数据
方法2
服务端根据银行id组装好数据返回1个对象:卡号和银行名称对应的对象。
哪个方法好
4 回答
![?](http://img1.sycdn.imooc.com/54584c5e0001491102200220-100-100.jpg)
芜湖不芜
TA贡献1796条经验 获得超7个赞
这个要结合具体场景来看。如果数据量很小的话,前端后端都没有问题,如果数据量很大的话,肯定是后端处理合适。另外,还要取决于后台现有接口的设计原则,比如接口的定位是提供通用的基础数据,这个接口不仅为你服务,也为其他应用服务,这时计算可能就是放到前端做合适,因为后端提供的是通用接口。除非,获取平均值也是一个通用需求,不然没有必要为了你一个人,而改变原有接口。
根据问题修改新增:
其实还是我上面解释的,如果后端的接口就是为你一个应用服务的,肯定是要尽量把逻辑做到后端,返回的字段也尽量适配前端需求。但如果后端提供的接口是抽象度较高的通用接口,则不会轻易为一个应用前端改变。这个时候做法有两种:1. 前端处理起来并不是很麻烦就自己搞定,比如几十条记录求个平均值; 2. 如果前端用起来很不方便或是性能有问题,则需要引入中台层服务,说白了就是在原始的接口之上,根据业务需求再封装一层接口。
![?](http://img1.sycdn.imooc.com/5923e28b0001bb7201000100-100-100.jpg)
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
你自己想清楚,是 “计算平均值”,还是“获取一堆数据”,这两者区别很明显吧。如果两者都可以达到目的,那么选择“尽量不减少信息”的方式,前提是,实现上没有问题。(什么叫实现有问题,你数据是上万条的,那么传递这上万条数据也许就是“无法实现”的,但是你数据可预见的一共也有几十条,那么实现就没有问题)
要说“接口设计”的话,第一层设计,一定是“面向数据”,而不是“面向业务”。
- 4 回答
- 0 关注
- 878 浏览
添加回答
举报
0/150
提交
取消