在线做字网站,wordpress导航单页,郑州 科技有限公司 网站建设,用户注册1. 问题描述
修改接口#xff0c;字段的内容允许清空#xff0c;是否应该做参数校验#xff1f;如何做参数校验#xff1f;
2. 说明
2.1. 需要对字段进行校验。
因为不校验#xff0c;字段可能不传#xff0c;或者字段的值为null#xff1b;这样无法判断出#xff…1. 问题描述
修改接口字段的内容允许清空是否应该做参数校验如何做参数校验
2. 说明
2.1. 需要对字段进行校验。
因为不校验字段可能不传或者字段的值为null这样无法判断出这个字段对应的含义是不修改默认逻辑还是要修改为空业务中修改的逻辑。 当逻辑为修改时一个字段的值为null默认的含义是这个字段没有修改。ORM框架也是按照这个规则设计的字段为null不更新字段。 2.2. 校验方法NotNull
正确的校验方法是使用 NotNull字段必须传且不能为空指针null否则接口返回调用失败。
3. 字段清空逻辑
字段清空逻辑对应着字段的值为空字符串
字段中的值不为空则表示字段值修改为这个值。
这样就不会再产生歧义问题了。
4. 代码示例
4.1. 参数对象
package com.example.web.param;import javax.validation.constraints.NotNull;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;Data
ApiModel(编辑账号Param)
public class AccountEditParam {NotNull(message 邮箱不能为null。清空内容请传空字符串)ApiModelProperty(邮箱)private String email;}
4.2. 接口 PostMapping(account)ApiOperation(编辑账号允许清空字段内容)public void editAccount(Valid RequestBody AccountEditParam param) {// TODO 操作数据库修改对应的字段。}5. 结果示例
如果email字段不传或者为null接口返回调用失败 如果email字段传的是空字符串接口调用成功email字段修改为空字符串。
5.1. 不传或者为null
参数 结果 5.2. 传的是空字符串
参数 结果