环回中 REST 连接器查询中的重复键
Duplicate keys in a REST connector query in loopback
我想问问您是否知道如何在环回 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 的值,因为我只获得了最后一个参数的信息。
知道如何解决吗?
提前谢谢。
您只需将它们作为数组传递即可:
'query': {
q: ['PHOTOS', 'DETAILS'],
id: '{id}'
},
请注意,options
键是 passed to request,这里是 useQuerystring
的文档:
useQuerystring
- If true, use querystring
to stringify and parse querystrings, otherwise use qs
(default: false
). Set this option
to true
if you need arrays to be serialized as foo=bar&foo=baz
instead of the default foo[0]=bar&foo[1]=baz
.
因此,如果您删除它,您将以 ?q[0]=PHOTOS&q[1]=DETAILS
.
之类的内容结尾
您还可以选择其他选项:
qsStringifyOptions
- object containing options to pass to the qs.stringify method.
Alternatively pass options to the
querystring.stringify
method using this format {sep:';', eq:':', options:{}}
. For example,
to change the way arrays are converted to query strings using the qs
module pass the arrayFormat
option with one of
indices|brackets|repeat
所以你实际上可以得到同样的东西加上这个:
"options": {
"qsStringifyOptions": {
"arrayFormat": "repeat"
}
}
如果你只想有括号(像这样 ?q[]=PHOTOS&q[]=DETAILS
)你可以指定 brackets
选项:
"options": {
"qsStringifyOptions": {
"arrayFormat": "brackets"
}
}
我想问问您是否知道如何在环回 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 的值,因为我只获得了最后一个参数的信息。
知道如何解决吗?
提前谢谢。
您只需将它们作为数组传递即可:
'query': {
q: ['PHOTOS', 'DETAILS'],
id: '{id}'
},
请注意,options
键是 passed to request,这里是 useQuerystring
的文档:
useQuerystring
- If true, usequerystring
to stringify and parse querystrings, otherwise useqs
(default:false
). Set this option totrue
if you need arrays to be serialized asfoo=bar&foo=baz
instead of the defaultfoo[0]=bar&foo[1]=baz
.
因此,如果您删除它,您将以 ?q[0]=PHOTOS&q[1]=DETAILS
.
您还可以选择其他选项:
qsStringifyOptions
- object containing options to pass to the qs.stringify method. Alternatively pass options to the querystring.stringify method using this format{sep:';', eq:':', options:{}}
. For example, to change the way arrays are converted to query strings using theqs
module pass thearrayFormat
option with one ofindices|brackets|repeat
所以你实际上可以得到同样的东西加上这个:
"options": {
"qsStringifyOptions": {
"arrayFormat": "repeat"
}
}
如果你只想有括号(像这样 ?q[]=PHOTOS&q[]=DETAILS
)你可以指定 brackets
选项:
"options": {
"qsStringifyOptions": {
"arrayFormat": "brackets"
}
}