我正在将一个swagger规范文件导入邮递员以创建一个集合,此时,按预期工作,并使用所有请求生成集合&子文件夹,很好!!但是当更新api时,我需要更新邮递员以根据新规范更新所有请求。我找不到像“更新”之类的动作。我正在尝试将新规范导入邮递员,他说:
集合APIName已存在。 你想做什么?
Replace
或Import as copy
副本是一个不可行的选项,然后我使用replace
并更新现有的集合,但所有测试,参数,pre-req脚本都被删除,我需要重新配置所有。
我遗漏了一些东西,有一种方法可以导入&从规范文件更新现有的集合,而不会丢失现有的测试和配置?
提前感谢!
答案 0 :(得分:1)
Postman目前不支持此功能。 Link
我从blog学到了另一种方法。简而言之:
collection_uid
。 邮递员更新集合API主体示例:
{
"collection":
<------- YOUR EXPORTED COLLECTION HERE --------->
}
答案 1 :(得分:0)
没有简单明了的解决方案。很长一段时间也可能不会有一个 - 开发人员said很难将集合中的旧邮递员请求与新请求关联起来从传入的Swagger文件(或任何其他更新源)生成。
你可以在Postman之外做到这一点。 邮差收藏品实际上只是JSON数据,可以这样操作。
我为第3步做了一个简单的帮助。如果你只是在集合中添加更多的东西(我的情况),但是不能删除任何东西,这很好。 如果有人有更通用的解决方案,请发布 - 我很乐意使用它。
function execute() {
collection = JSON.parse($(".collection").val());
swagger = JSON.parse($(".swagger").val());
result = JSON.stringify($.extend(true, {}, swagger, collection));
$(".result").val(result);
}
<html><body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<br>Collection: <br> <textarea class="collection"></textarea>
<br>Swagger: <br> <textarea class="swagger"></textarea>
<br>Result: <br> <textarea class="result"></textarea>
<br>
<button onClick="execute()">EXECUTE</button>
</body></html>
答案 2 :(得分:0)
我制作了一个小工具来执行此操作:swagger2postman: convert swagger to postman collection and update exist collection
该工具将合并新旧收藏,当发生冲突时,它将使用保存在邮递员手中。该工具可以检测查询参数中的更新,但不能检测正文。它将保留您所有的收集和测试用例。