环回中的REST连接器查询中的重复键
问题描述:
我想问你是否知道如何在环回REST连接器查询中重复参数。 我有以下代码:环回中的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的值,因为我得到了最后一个参数唯一信息的问题。
任何想法如何解决它?
谢谢你在avance。
答
你只需将它们传递作为数组:
'query': {
q: ['PHOTOS', 'DETAILS'],
id: '{id}'
},
注意,options
关键,是passed到request,这里是为useQuerystring
的文档:
useQuerystring
- 如果为true ,请使用querystring
来串化和解析querystrings,否则使用qs
(默认值:false
)。如果需要将阵列序列化为foo=bar&foo=baz
而不是默认foo[0]=bar&foo[1]=baz
,请将此选项设置为 至true
。
所以,如果你删除它,你会喜欢的东西?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"
}
}
非常感谢!真的很好解释。 – Bruno