Google Cloud Search Query via node.js Ошибка: получена недопустимая полезная нагрузка JSON - PullRequest
0 голосов
/ 14 июня 2019

Библиотека googleapis node.js возвращает приведенную ниже ошибку при попытке запроса API облачного поиска.

Error: Invalid JSON payload received. Unknown name \"requestOptions[searchApplicationId]\": Cannot bind query parameter. Field 'requestOptions[searchApplicationId]' could not be found in request message."

Полезная нагрузка в точности соответствует задокументированной здесь, https://developers.google.com/cloud-search/docs/reference/rest/v1/query/search. requestOptions [searchApplicationId] присутствует, и если я удаляю ее, я получаю сообщение об ошибке, что searchApplicationId требуется.

Код:

const {google} = require('googleapis');

const service = google.cloudsearch({version: 'v1'});
service.query.search({
  auth: jwtClient,
  requestOptions: {
    searchApplicationId: 'searchapplications/default',
    debugOptions:{enableDebugging: true}
  },
  query: 'My query'
}).then((res) => {
  console.log(JSON.stringify({results:res.results.length}));
  console.log(JSON.stringify({resultsInfo:res.results[0]}));
}).catch((err) => {
  console.error('Unexpected error with cloud search API.');
  console.error(err.toString());
});

Запрос работает из проводника API. https://developers.google.com/apis-explorer/#search/cloudsearch/m/cloudsearch/v1/cloudsearch.query.search?_h=1&resource=%257B%250A++%2522requestOptions%2522%253A+%250A++%257B%250A++++%2522searchApplicationId%2522%253A+%2522searchapplications%252Fdefault%2522%250A++%257D%252C%250A++%2522query%2522%253A+%2522Testing%2522%250A%257D&

Я что-то упустил? Это проблема с клиентской библиотекой Google? (https://github.com/googleapis/google-api-nodejs-client) Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 14 июня 2019

Наконец-то разобрался. Пришлось обернуть запрос в requestBody JSON.

service.query.search({
  auth: jwtClient,
  requestBody: {
    requestOptions: {
      searchApplicationId: 'searchapplications/default',
      debugOptions:{enableDebugging: true}
    },
    query: 'My query'
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...