增删改 - 02 - 入参

增删改 - 02 - 前端常见入参

当下常见的前后端分离项目中,前端的数据有时不能很好的传输到后端来,时而让后端功能自测OK,联调时却无法达到预期目标

本着预期内耗自己,不如难受他人的原则,先找前端的问题才是正解

可能双方都有一些问题,如果自测完发现没有问题的话,那就去找前端吧,看看传过来的数据有咩有按照文档来


这里简单总结几个常见的前端传输问题

1. null和字符串null

对于String类型的字段,前端可能会一不小心传入一个
String filed = “null”,而不是后端想要的
String filed = null,
这个小错在DeBug的时候,一不留神就会看错,这个错误的入参比较痛苦
后端要更加自信,自测多次OK的话,大胆怀疑前端吧

解决方案: 让前端修改传参,后端也可以判断是不是"null"字符串,if True 就设为 null 后,再入库


2. 前端传 Long 失真

前端的Long类型和后端的Long类型精度不同,这是因为他们能表示的最大值和最小值不同

前端Long类型:53位二进制 可表示的数值
后端Long类型:64位二进制 可表示的数值

解决方案 1:添加注解

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long mgmtCompId;

如果有大量的Long类型需要转换,可选择全局配置,而不用单个字段添加注解
全局配置如果使用Jakson,可参考下面的文章

传送门

解决方案 2:Long 转为 String

    private String mgmtCompId;

3. 前端传来 Date 日期格式

解决方案 1: 添加注解

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone ="GMT+8")
    private Date createTime;

解决方案 2: 使用 String

	@Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "查询日期格式错误(yyyy-MM-dd)")
    private String queryTime;

4. 分页查询时没有刷新 current = 1

解决方案: 放心的去找前端吧,和后端没有关系


5. 传输格式错误

典型案例:后端要求 form 表单类型,前端传了 JSON,这个有时不能怪前端,form 表单对于某些包含复杂集合的DTO,确实是难以处理

举个栗子:
对下面的这个类,里面包含一个 list 集合,前端会觉得这个 list 在 form 表单里难以处理,这时两人商量下怎么处理吧

class DTO {
	private Integer count;
	private String name;
	private List<Integer> subDTO;
}

剩下的后续补充 ^ _^

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值