版本号
1.7.1
什么问题
~同步数据的tip 一共出现在两个地方: 1. 数据管理的数据导入; 2. 设置中的swagger自动同步
其文案均为:
普通模式:不导入已存在的接口
智能合并:已存在的接口,将合并返回数据的 response,适用于导入了 swagger 数据,保留对数据结构的改动
完全覆盖:不保留旧数据,完全使用新数据,适用于接口定义完全交给后端定义
这里有几个问题:
a. 这里的问题是, 在swagger数据源变化时, 1中的完全覆盖导入,会提示是否覆盖, 确认后,会直接覆盖, 而2中选择完全覆盖导入后,实际上并不覆盖。
2的行为和tip中的完全覆盖的描述不一致, 且与1的行为也不一致, 让人很迷惑。
如果覆盖的策略就是如 #1133 中评论所说, 那么 完全覆盖的 描述应该做修改
b. 在编辑接口的response后, 1中选择智能合并, 实际上是覆盖了接口, 和tip中的描述又不一致 -_-|||
如何复现此问题
~
什么浏览器
chrome75
什么系统(Linux, Windows, macOS)
win10
2条答案
按热度按时间uwopmtnx1#
b. 在编辑接口的response后, 1中选择智能合并, 实际上是覆盖了接口
这个跟我的实际操作不一样?
我专门测试了下swagger的导入的智能合并模式
场景1:
1、 yapi已经同步了一次swagger的接口,保持一致的前提
2、 yapi编辑接口,删除了header和response的一个字段,在其中一个response中添加了mock规则,添加了一个mock期望
3、 使用swagger导入功能,选择只能合并模式进行导入
结果: 导入把步骤2中的删除字段补充了回来, response中的mock规则仍存在, mock期望仍存在
(另外如果将步骤3换成定时同步,已删除的字段没有补充回来,这个表现出来的实现与导入不一致,属于BUG)
场景2:
1、 yapi已经同步了一次swagger的接口,保持一致的前提
2、 yapi编辑接口,删除了header和response的一个字段,在其中一个response中添加了mock规则,添加了一个mock期望
3、 使用swagger导入功能,选择只能完全覆盖模式进行导入
结果: 导入把步骤2中的删除字段补充了回来, response中的mock规则仍移除, mock期望仍存在
khbbv19g2#
b. 在编辑接口的response后, 1中选择智能合并, 实际上是覆盖了接口
这个跟我的实际操作不一样?
我专门测试了下swagger的导入的智能合并模式
场景1:
1、 yapi已经同步了一次swagger的接口,保持一致的前提
2、 yapi编辑接口,删除了header和response的一个字段,在其中一个response中添加了mock规则,添加了一个mock期望
3、 使用swagger导入功能,选择只能合并模式进行导入
结果: 导入把步骤2中的删除字段补充了回来, response中的mock规则仍存在, mock期望仍存在
(另外如果将步骤3换成定时同步,已删除的字段没有补充回来,这个表现出来的实现与导入不一致,属于BUG)
场景2:
1、 yapi已经同步了一次swagger的接口,保持一致的前提
2、 yapi编辑接口,删除了header和response的一个字段,在其中一个response中添加了mock规则,添加了一个mock期望
3、 使用swagger导入功能,选择只能完全覆盖模式进行导入
结果: 导入把步骤2中的删除字段补充了回来, response中的mock规则仍移除, mock期望仍存在
我对你的场景1重新做了测试, 结果和你不一样。 下面是我的操作步骤: