Azure流水线InvokeRESTAPI任务如何提取API响应值调用后续模板
Azure流水线InvokeRESTAPI任务响应值提取方法
可以提取API返回结果中的值用于后续其他模板调用,你当前配置的successCriteria能正常生效就说明任务已经完整捕获了API响应,界面上Response字段显示为空是Azure DevOps的默认展示策略,不影响后台对响应数据的解析。
具体实现方法如下:
1. 配置InvokeRESTAPI任务的输出变量
首先给InvokeRESTAPI任务设置明确的name属性,再通过outputVariables字段绑定需要提取的响应值到流水线变量,取值规则和你当前使用的successCriteria完全一致,用root前缀指代响应的JSON根节点:
- task: InvokeRESTAPI@1 name: CallCustomAPI # 必须配置任务名称,是后续引用变量的前置条件 inputs: # 保留你原有配置的服务连接、请求方法、接口地址等参数不变 successCriteria: eq(root["status"], "successful") outputVariables: # 示例:提取响应根节点下的status字段 - name: apiStatus value: $(root.status) # 示例:提取响应中嵌套的字段 - name: apiResultId value: $(root.data.id)
2. 引用提取到的变量
你可以通过$(任务名.变量名)的格式,在同流水线的后续步骤、跨阶段任务或者被调用的模板中使用提取到的值:
# 同阶段直接使用示例 - script: echo "API返回的业务ID为 $(CallCustomAPI.apiResultId)" displayName: 输出API提取值 # 传递给其他模板示例 - template: ./templates/process-result.yml parameters: businessId: $(CallCustomAPI.apiResultId)
注意事项
- 仅支持对JSON格式的响应做结构化字段提取,非JSON格式响应无法通过该方式取值
- 变量引用的命名必须和你给任务设置的
name、输出变量定义的name完全匹配,区分大小写
内容的提问来源于stack exchange,提问作者macabi
相关产品推荐
相关产品推荐

