0

Мне кажется, что я должен это понять, но я зациклился на синтаксисе вызовов google api в узле, используя google-api-nodejs-client ,google api + node.js + google-api-nodejs-client

Вот мой код для запроса книг, которые принимают строку поиска как «запрос», и это работает отлично.

client.books.volumes.list({q: query}).withAuthClient(oath2Client); 

Как сейчас, он возвращает список книг со всеми данными, относящимися к этим книгам. Но как мне изменить это, чтобы отфильтровать результаты, чтобы сказать только идентификатор, название и авторов?

ответ

0

Согласно документации API по адресу https://developers.google.com/books/docs/v1/reference/volumes/list, вы можете «Ограничить информацию, возвращенную к набору выбранных полей». используя параметр проекции. Таким образом, вызов может выглядеть как

 
client.books.volumes.list({ 
    q: query, 
    projection: 'lite' 
}).withAuthClient(oauth2Client); 

Хотя документация не говорит так, это выглядит, как вы можете также использовать параметр «поля», чтобы точно указать, какие поля вы хотите. Используйте редактор полей как часть «Попробуйте!». блок на этой странице, чтобы получить нужную конфигурацию, но что-то вроде этого также должно работать, чтобы получить только идентификатор книги, название и авторов:

 
client.books.volumes.list({ 
    q: query, 
    fields: 'items(id,volumeInfo(authors,title))' 
}).withAuthClient(oauth2Client); 
+0

О, не заметил этого параметра раньше. Я предположил, что вы можете указать поля для возврата, как показано в примере, используя редактор полей, но я предполагаю, что это только пример? – bluegreymouse

+0

Я сижу исправлен! «Попробуй!» показывает, что «поля» действительны, даже в документации его нет. Я обновил свой ответ, чтобы показать (непроверенный) пример того, как это может работать. – Prisoner

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