前后端交互原则之不传枚举值

枚举值是什么

通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的

枚举值举例

审批状态:0待审批1通过2驳回3删除

前后端交互传枚举值的优点

针对不同枚举值的输入,后端只需提供一个接口。比如审批状态1通过2驳回3删除,后端只需提供一个修改状态的接口的,状态值由前端控制传递。

前后端交互传枚举值的缺点

1枚举值越界:前端传递的值不再枚举范围内,比如例子中的审批状态只有0,1,2,3,结果前端传递了4,后端不好处理,增加了校验成本。

2不好修改:前后端需要约定枚举值,就像例子中0,1,2,3的含义,如果改变枚举值的含义或者新增枚举值,需要前后端再次约定,沟通成本和代码修改成本都比较高。

3不便追溯:由于后端只有一个接口,无法知道前端每次调用的真正含义。比如修改状态,前端无法记录用户的操作,一旦传参错误,比如审批通过的时候前端传递了2驳回,那么后端只能记录前端传递的参数是驳回,不知道用户真正是想驳回还是通过,不便于追溯错误。

解决办法

后端针对每个枚举值提供对应的接口。

前后端交互不传枚举值的缺点

后端写的的接口多

前后端交互不传枚举值的优点

针对前后端交互传枚举值的缺点得到前后端交互不传枚举值的优点:

1无需校验参数:前端不需要传递枚举值,自然不需要校验,不存在枚举值错误和越界的情况。

2便于修改:枚举值完全由后端控制,无需和前端进行约定,减少了沟通成本,后端对枚举值的修改,前端是不可见的。

3记录用户操作:用户点什么功能就调用什么接口,后端可以记录用户的真正操作,便于追溯错误。比如用户点击了审核通过,前端直接调用审核通过接口,后端可以直接记录用户审核通过的操作,如果用户点了审核通过,结果却是驳回,那么只需要检查前端是否调用正确的接口即可,不需要再检查参数。

结论

前后端交互不传枚举值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值