在回送中的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' ] } }
问题在于,看起来loopback覆盖了最后一个参数q的值,因为我只获取最后一个参数的信息。
任何想法如何解决它?
谢谢你,
你只需要把它们作为一个数组来传递:
'query': { q: ['PHOTOS', 'DETAILS'], id: '{id}' },
请注意, options
键传递给请求 ,这里是useQuerystring
的文档:
useQuerystring
– 如果为true,则使用querystring
来useQuerystring
化和parsingquerystrings,否则使用qs
(默认值:false
)。 如果需要将数组序列化为foo=bar&foo=baz
而不是默认的foo[0]=bar&foo[1]=baz
将此选项设置为true
。
所以如果你删除它,你会以类似于?q[0]=PHOTOS&q[1]=DETAILS
。
你也可以在那里另一个select:
qsStringifyOptions
– 包含传递给qs.stringify方法的选项的对象。 或者使用这种格式将选项传递给querystring.stringify方法{sep:';', eq:':', options:{}}
。 例如,要改变使用qs
模块将数组转换为查询string的方式,arrayFormat
选项与indices|brackets|repeat
一个
所以你可以添加这个结果:
"options": { "qsStringifyOptions": { "arrayFormat": "repeat" } }
如果你想只有括号(像这样?q[]=PHOTOS&q[]=DETAILS
),你可以指定brackets
选项:
"options": { "qsStringifyOptions": { "arrayFormat": "brackets" } }