环回中的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关键,是passedrequest,这里是为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" 
    } 
    } 
+0

非常感谢!真的很好解释。 – Bruno