带徒实训项目实战讲义分享:ApiFirst文档对比功能页面开发

亲爱的学员朋友,前面咱一起实现了入参列表对比的部分功能,本节在此基础上继续开发和重构代码,go!

已实现的功能

基于0.0.60.0.5两个版本比较入参列表的变化,用淡蓝色背景标出改动的请求接口,比较出参数名称、描述的变化,这里以修改路径参数为例;比较参数校验规则的变化,这里用绿色标注新增的校验项:
在这里插入图片描述
再对比0.0.70.0.6两个版本的变化,密码参数的非空校验message修改了,并删除了长度校验:
在这里插入图片描述
具体的变化反映在数据库,咱们对操作历史变更插入了一些记录:
在这里插入图片描述
这些大家伙儿都完成的很好!

实现API入参列表的增删对比

在版本0.0.4中咱们对问候api进行了入参列表的调整,删掉了查询参数,新增了两个路径参数,sql脚本如下:
在这里插入图片描述
通过单元测试调试,发现咱们的核心对比功能对比出了这种变化:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在,让我们调整thymeleafhtml模板来实现这种渲染。
按照现在的实现,应该把personName参数这一行置灰:
在这里插入图片描述
先在对比基类中新增一个方法来判断对比项是否被删除:
在这里插入图片描述
学员要注意,这里modifiedType可能为null,也就是对比项没变化,不能直接用== 来判断。
修改compare-result.html,增加删除trclass
在这里插入图片描述
看到页面的变化:
在这里插入图片描述
延用校验单元格中对删除校验项的样式:
在这里插入图片描述
看一看标记删除的效果:
在这里插入图片描述

合并参数列表

在进一步实现参数列表新增项渲染功能之前,咱们先合并下对比的参数列表变化的部分:
ApiItemDTO中新增合并入参列表的方法:
在这里插入图片描述
调整模板:
在这里插入图片描述
看到新增的参数列表显示出来了
在这里插入图片描述
对新增参数项进行颜色标注,和前面对删除项的做法一样,先写getter判断方法:
在这里插入图片描述
模板调整:
在这里插入图片描述

isXxx()方法的属性获取
在获取时直接访问xxx即可,这里贴出来的代码可以再精简。

样式调整:
在这里插入图片描述
测试时发现,页面没看到效果,review代码,发现参数列表对比实现中忘了比较新增项的状态,调整下ParamsCompareCommand
在这里插入图片描述
重启服务,看页面效果:
在这里插入图片描述

杜绝内部变量暴露

功能实现了,带学员朋友再优化下代码。首先是判断modifiedType类型的地方,直接提供isXxx()方法,按照代码设计原则,这就是把自己不该暴露出来的东西给别人看了。
CompareBaseDTO中使用这些方法:
在这里插入图片描述

按照这种调整,有的学员朋友写出这样的代码,也需要优化:
在这里插入图片描述
提供isXxx()方法来代替:
在这里插入图片描述
悟性好的学员朋友,自然想到进一步优化,除去重复代码,复用对比项基类中的isXxx()方法,这样重构后代码就变得漂亮很多了:
在这里插入图片描述
相应的,在sub-templates.html中调整:
在这里插入图片描述
同样的,compare-result.html中的调整:
在这里插入图片描述
同样,在review学员代码时,看到这样的写法:
在这里插入图片描述
这是对api按照path分组后根据变更的状态进行背景色标注的模板代码,请自行按照前面的做法进行重构。优化后的结果:
在这里插入图片描述

提取modifiedType枚举

在实现内部接口时,变量可枚举的值强烈推荐用枚举来维护,在review学员代码时发现这种写法:
在这里插入图片描述
建议新建一个枚举类来更好的维护:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值