yapi 同步数据问题

fruv7luv  于 2022-10-27  发布在  其他
关注(0)|答案(2)|浏览(327)

版本号

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

uwopmtnx

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期望仍存在

khbbv19g

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重新做了测试, 结果和你不一样。 下面是我的操作步骤:

  1. https://editor.swagger.io/中保存网站默认的swagger文件, json格式的
  2. 在yapi中新建项目petstore
  3. 进入项目, 选择数据管理, 将json文件拖入拖拽区。 web提示导入20个接口导入成功
  4. 进入接口tab, 选择pet-->uploads an image
  5. 在response中增加一个字段, 然后删掉message那个字段
  6. 点击保存, 查看接口, response的字段已经更改
  7. 进入选择数据管理tab
  8. 数据同步选择智能合并
  9. 拖拽最初的json文件到拖拽区
  10. web提示 “成功导入接口 20 个, 已存在的接口 20 个”
  11. 查看接口, 发现response中刚刚加的字段没了, message字段回来了

相关问题