我想问一下你是否知道如何在环回REST连接器查询中复制参数。 我有以下代码:
details: {
'template': {
'method': 'GET',
'debug': true,
'url': 'https://www.example.com/data',
'timeout': 10000,
'headers': {
'Authorization': 'Bearer {token}'
},
'query': {
q: 'PHOTOS'
q: 'DETAILS',
id: '{id}'
},
'options': {
'useQuerystring': true
},
'responsePath': '$'
},
'functions': {
'searchData': [
'token',
'id'
]
}
}
问题在于,似乎环回覆盖了最后一个参数q的值,因为我只得到最后一个参数的信息。
知道怎么解决吗?
谢谢你。
答案 0 :(得分:2)
您只需将它们作为数组传递:
'query': {
q: ['PHOTOS', 'DETAILS'],
id: '{id}'
},
请注意,options
密钥为passed至request,此处为useQuerystring
的文档:
useQuerystring
- 如果为true,请使用querystring
字符串化并解析查询字符串,否则请使用qs
(默认值:false
)。设置此选项 如果需要将数组序列化为true
,请foo=bar&foo=baz
而不是默认的foo[0]=bar&foo[1]=baz
。
因此,如果你删除它,你会以?q[0]=PHOTOS&q[1]=DETAILS
。
您还可以选择其他选项:
qsStringifyOptions
- 包含传递给qs.stringify方法的选项的对象。 或者将选项传递给 querystring.stringify 使用此格式{sep:';', eq:':', options:{}}
的方法。例如, 使用qs
更改数组转换为查询字符串的方式 模块传递arrayFormat
选项中的一个indices|brackets|repeat
所以你实际上最终会添加相同的东西:
"options": {
"qsStringifyOptions": {
"arrayFormat": "repeat"
}
}
如果你想只有括号(类似于?q[]=PHOTOS&q[]=DETAILS
),你可以指定brackets
选项:
"options": {
"qsStringifyOptions": {
"arrayFormat": "brackets"
}
}