在task.json中使用web API填充选项列表buildtask

时间:2018-01-04 12:36:34

标签: json tfs azure-devops

我是第一次使用TFS / VSTS扩展程序。我当前的任务是构建一个简单的VSTS构建任务。

我们有一个包含产品信息的自制Web API,但我陷入了源绑定。找到有关使用端点服务的信息,但未填充我的选项列表。

到目前为止:

Task.Json

"inputs": [
{
  "name": "APIURL",
  "type": "connectedService:Generic",
  "label": "API URL",
  "required": true,
  "GroupName": "WebAPIsettings",
  "helpMarkDown": ""
},
{
  "name": "List1",
  "type": "pickList",
  "label": "List1",
  "defaultValue": "",
  "required": true,
  "GroupName": "WebAPIsettings",
  "helpMarkDown": ""
},
{
  "name": "List2",
  "type": "pickList",
  "label": "List2",
  "defaultValue": "",
  "required": true,
  "GroupName": "WebAPIsettings",
  "helpMarkDown": ""
}]

,"sourceDefinitions": [
{
  "target": "List1",
  "endpoint": "/api/data/get",
  "selector": "jsonpath:$.[Code]",
  "authKey": "$(APIURL)"
},
{
  "target": "List2",
  "endpoint": "/api/data/get",
  "selector": "jsonpath:$.[ID]",
  "authKey": "$(APIURL)"
}]

我创建了一个指向API(http://sample.api.local

的通用端点

在选择端点后,list1和list2都没有填充,所以我遗漏了一些东西。

我用http://jsonpath.com/测试了我的API json输出 JSON测试数据:

[{"Code":"0344","ID":"version1"},
{"Code":"0363","ID":"version2"},
{"Code":"0518","ID":"version3"},
{"Code":"0599","ID":"version4"}]

我错过了什么?

1 个答案:

答案 0 :(得分:1)

改为使用此代码:

"selector": "jsonpath:$[*].ID"