请教一个前后端接口对接的问题,这种功能如何设计才合理?
一个vue前后端分离的项目,功能是实现分页列表中的批处理,一共有两个CheckBox分别对应操作“全部数据”和“本页全选”(如下)。后端设计是把选中的数据id放进一个数组中传递调用A接口进行批处理,这点无异议,但是当用户选择“全部数据”的时候后端让先查询另外一个接口,取得所有数据的id后再调用A接口。我感觉“全部数据”选中只是一个标识表示要操作表中所有记录,额外绑定一个参数标识,不需要把所有的id先查询然后再传一遍,后端自己判断查询就可以啊,要是有1w条数据前端要传1w个id?感觉不合理啊,结果被后端以影响性能等各种理由拒绝。想问问大佬们这种情况合理的设计应该是怎样的?
回复
1个回答
test
2024-07-10
被后端以影响性能等各种理由拒绝
请后端评估一下到底哪个更影响性能!推诿请常见,推诿得这么水的还是少。
不过话说回来,前端多调一个接口也不是啥难事。只要后端敢签字确认说那种方式可以有更好的性能,前端要做还真费不了多少事,就是怕数据量大的时候等返回数据等超时。
另外,还要看全选之后进行什么操作。如果是批量修改部分数据,那这个接口是需要跟后端协商好的。但是既然只需要 ID 列表,估计应该不是修改数据的操作,大概率是删除、移动之类的操作。这类操作给个命令+参数其实前后端都好处理。
对于后续处理,你可以问问后端:他们是不是想拿到 ID 列表然后遍历一个个去操作 update/delete where id = xx
,如果不用 ID,只需要 update/delete
就好,都不需要遍历。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容