设计批量操作接口所需考虑的问题总结

本文总结了设计批量操作接口时需考虑的问题,包括批量数据如何传入web层、数据效验、返回操作状态及处理部分失败的策略。在实践中,针对web层传入数据,可以使用列表或JSON格式;数据效验需保持一致性并指出具体错误位置;返回状态可以选择按单元返回或整体判断;部分失败时可采用事务处理确保数据一致性。

背景

对于增删改查这些操作,现代框架已经提供了比较好的实现。
在这基础上往往有一些扩展需求。
比如说批量的增删改查。
对于玩具代码来说,实现并不复杂。
但在工程上的代码,还是需要考虑下多种情况。

可能需要考虑的问题

  • 批量的数据,如何传入web层?
  • 批量的数据,如何效验数据有效性?
    • 需要与单个操作保持效验的一致性
  • 如何返回批量数据操作的状态?
  • 批量操作中部分操作,成功了,部分失败了,如何处理?
    • 增加插入时,已经有存在的数据了
    • 删除时,查找时,修改时,该数据不存在

自己对上面问题的实践

  • web层传入问题
    • 页面提交的情况: 一般是checkbox 列表。接收端一个String []就可以解决。
    • 非页面,用key-value方式,可以选取分隔符传入的数组放入一个key中,如http://example.com/del?name=a,b,c。适用于参数简单,查询或者删除。
    • 非页面,用json格式来post。合适复杂对象,需要插入数据等,直接可以序列化成传输对象,比简单易用。如:
[
    {
        "x":1,
        "y":2
    },
    {
        "x":3,
        "y":4
    }
]
  • 数据效验问题
    • 因为需要保持与单个操作一致的检查,需要循环调用效验单个数据的过程。但如果效验过程有些提示信息。单个的提示信息只包含单个的信息,但在批量的操作中,需要指明哪一个数据单元有问题,需要在提示信息中包含下标信息,于是需要改写单元效验代码。
  • 返回批量数据操作的状态
    • 这里有两种情况,一种中,按单元的结果,返回操作结果的数组。第二种是检查若有一个数据单元效验失败,则返回失败。所有的操作成功,才返回成功。
  • 批量操作中部分操作,成功了,部分失败了,如何处理。
    • 实际中是检查完全,只有保证所有的数据都能执行成功,再执行。或者在批量的处理中,做一个数据库的事务,若有失败,则回滚。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值