2017-02-18 17 views
1

Я хотел бы спросить, знаете ли вы, как я мог дублировать параметры в запросе на коннектор REST loopback. У меня есть следующий код:Повторяющиеся ключи в запросе REST-коннектора в loopback

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' 
     ] 
    } 
    } 

Проблема, что это то, что, кажется, что петлевой переопределить значение параметра ц на последней, потому что я получаю информацию только для последнего параметра.

Любая идея, как ее решить?

Благодарим вас за помощь.

ответ

2

Вы просто должны передать их как массив:

'query': { 
    q: ['PHOTOS', 'DETAILS'], 
    id: '{id}' 
    }, 

Обратите внимание, что ключ options, является passed к request и вот документация useQuerystring:

  • useQuerystring - Если это правда , используйте querystring для строкового кодирования и разбора повторов, в противном случае используйте qs (по умолчанию: false). Установите этот параметр на номер true, если вам нужны серийные номера, как foo=bar&foo=baz , а не по умолчанию foo[0]=bar&foo[1]=baz.

Так что, если вы удалите его, вы в конечном-то вроде ?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

 Смежные вопросы

  • Нет связанных вопросов^_^