在回送中的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,则使用querystringuseQuerystring化和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" } }