You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps发布流水线中添加if-then-else逻辑处理API响应

Azure DevOps 无代理发布流水线分支逻辑实现指南

1. 配置GET请求任务输出响应变量

你已完成的调用学生列表GET接口的调用REST API无代理任务,先做如下配置:

  • 找到任务配置页的「输出变量」区域,给该任务设置一个自定义引用名,比如GetStudentList
  • 配置完成后,接口返回的完整响应体会自动存入系统变量$(GetStudentList.Response),可在同作业的后续任务中直接调用

2. 配置if-else分支运行条件

Azure DevOps所有任务/作业都支持自定义运行条件,通过判断上述变量值即可实现分支逻辑,以下是两个分支的配置方法:

分支1:匹配到特定值时运行的后续任务

  • 新增你需要执行的后续流水线任务,打开任务的「控制选项」配置栏
  • 「运行条件」选择自定义条件,填入对应判断表达式,示例如下(假设你要查找的特定值是学号2024001,接口返回为JSON格式):
eq(contains(variables['GetStudentList.Response'], '"student_id":"2024001"'), true)

如果你的返回JSON结构复杂,可使用内置convertFromJson函数解析后再判断,比如判断返回的学生数组中是否存在对应id:ne(first(convertFromJson(variables['GetStudentList.Response']).students[?student_id == '2024001']), null),可根据你的实际返回结构调整表达式

  • 保存配置后,只有GET响应中存在目标值时,该分支任务才会运行

分支2:未匹配到特定值时运行的POST请求任务

  • 新增一个调用REST API无代理任务,配置为你需要调用的POST接口,填写对应的请求头、请求体参数
  • 同样打开「控制选项」->「运行条件」->「自定义条件」,填入取反的判断表达式:
eq(contains(variables['GetStudentList.Response'], '"student_id":"2024001"'), false)
  • 保存配置后,只有GET响应中不存在目标值时,该POST任务才会触发运行

注意事项

  • 同个无代理作业内的变量默认共享,无需额外配置变量传递,如果你要跨作业调用变量,需要在变量设置中勾选「允许在作业之间使用」
  • 配置完成后可先添加一个临时的命令行任务,打印$(GetStudentList.Response)变量值,确认返回格式后再调整判断表达式,避免大小写、字段名不匹配导致的判断失败

内容的提问来源于stack exchange,提问作者smcodemeister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:39:02