带徒实训项目ApiFirst实战讲义:导出文档支持API分组校验
前一篇:带徒实训项目实战讲义分享:ApiFirst文档对比功能页面开发2
上一节咱实现了导出文档中数据模型属性列表的粗略渲染,对于某个API应用校验分组的情况下展示也指出了优化的方向,本小节咱就一起来实现这个目标吧,go!
渲染校验分组

在ApiItemDTO中加一个方法来判断是否要渲染这一栏,这里要考虑校验分组对比后产生变更的情况。

编写模板:

看到效果:

过滤分组

首先优化下校验抽取的接口:

回顾下跟校验相关的DTO的类关系:

然后新加一个指定分组来获取合并后的校验项的接口方法:

调整下两个重载方法的实现:

关于工具类的使用
这里再次提醒学员,要善于使用工具,不要自己编写重复的代码,遇到不会写的代码要善于走捷径使用百度AI。
自己再写个
main方法验证下,确保没问题:
实现过滤分组后的模板渲染
引入子模版时传入指定的分组:

在子模版中获取校验项时,调用接收分组的方法:

再来看效果,完美实现了!

校验项按照分组来对比代码fix
现在,咱们在数据库里加一条关于用户信息数据模型的realName属性的非空校验变更,比如就改下消息文字:

重新初始化下数据库的schema和插入数据。
重启服务,看页面,之前校验模板封装的对比功能生效:

但同时,咱们的暂存接口也被标色了,问题在于对比的核心功能实现并没有按api所应用的校验分组来抓取数据模型的校验项来对比。

我们可以定位到对比的核心代码:

这里的泛型T实际是DtoPropertyDTO类型,问题是怎么知道上层的api所指定的分组呢,怎么传入呢?咱们可以在对比上下文中设置当前正在对比的两个api项:

在被指定的api对比的命令对象的开始把两个对比的api项设置到对比上下文对象中:

这样,获取校验项列表的地方调整为:

新增重载方法:

新增实现:

最后,问题被完美fix!修改的分组校验,只要原来的分组不受影响,对比就没有变化:



