校验总结:
快速失败校验放最外层 节省内存
xml都加条件标签
然后其他的校验都根据业务以及具体情况来
没有业务的时候要有空指针的校验避免空指针问题
校验的细节见 该如何做参数校验 - 稳健国国王 - 博客园 (cnblogs.com)
魔法值问题
建枚举类
入参问题
post请求put请求必须用 @RequestBody 建po
一个参数的话可以用路径传参
get请求必须用 @RequestParam
delete无所谓好像 应该也要符合post那种
入参日志紧跟着入参
log.debug("修改分组名称入参 updateGroupPo:{}", JSONObject.toJSONString(updateGroupPo));
括号里是后面的东西 po要转成json格式
mapper的建立是依据数据库建立的而不是service
数据库实体类和非实体类的区分以及使用场景不明确
查询之后可以直接用vo去接的数据,非得再建一个中间的dto还放在model层去转换 只有数据库出来的数据需要代码处理的话才需要dto
注释:
代码没注释,只有给前端的api注释,后端看不懂
api注释:controller
tags = "文件分组", description = "{新建,重命名,移动,删除分组,文件分组列表,下拉列表}"
入参注释
@ApiModel(value = "创建分组入参", description = "移动分组入参")
@ApiModelProperty(value = "分组名称")
出参注释
返回值问题
统一返回Response
这意味着Service也得是Response返回给controller 查询的话泛型填vo 示例:
Response<List<DocGroupListVo>>
具体的业务层里也有好多种返回的方式
比如ok了的那就得返回Response.ok()
想带着自己的东西就把返回的东西带进去
报错可以直接Response.error
也可以直接抛
但想返回对应的报错信息
异常的是这种
throw new SmartException(ResInfoEnum.USER_NOT_EXIST.getSeq(), ResInfoEnum.USER_NOT_EXIST.getMsg(), "用户名为空");
公用的枚举不要乱用
d ()这种一般是代码里And加错了或者有些奇怪的数字打进去了 如何避免 1用where条件标签 2第二个开始用And
未认证这种都是 token 认证的服务没过去
坏请求 一般是入参的值 数量 类型有不对的 链路上来说已经走到我的接口了