Я создаю небольшое приложение, которое, помимо прочего, отображает хронологическую ленту всех комментариев и ответов на файлы в их рабочей учетной записи Google Диска. Позже я создам несколько настраиваемых фильтров, чтобы, например, пользователи могли видеть только комментарии и ответы, в которых они были @ упомянуты.

Теперь, чтобы получить эти данные, есть конечная точка API Google Диска, чтобы получить список файлов на Диске для данного пользователя, например: GET https://www.googleapis.com/drive/v3/files?orderBy=modifiedTime%20desc&pageSize=20&fields=*

Также существует конечная точка API Google Диска для получения списка комментариев к заданному файл. Пример: GET https://www.googleapis.com/drive/v3/files/fileId/comments. Каждый комментарий имеет свойство replies с массивом ответов на этот комментарий.

Прямо сейчас я делаю следующее:

  • Получение 20 последних файлов Google Диска пользователя (первая конечная точка)
  • Для каждого из 20 файлов на Диске получение списка комментариев для этого файла (вторая конечная точка), выгрузка его в массив commentsAndReplies.
  • Для каждого из (обычно 30-40 + всего комментариев) запустите forEach, чтобы получить все ответы на каждый комментарий, сбрасывая каждый ответ в массив commentsAndReplies.

Это кажется немного чрезмерным для такого простого случая использования, как мой. Я просмотрел документацию и не смог найти ничего лучше для моего варианта использования - например, я подумал, что в метаданных отдельных файлов на Google Диске может быть свойство comments, поэтому мне нужно сделать только одну выборку звоните - но не тут-то было.

Есть ли какая-то конечная точка Google Диска, которую мне не хватает, чтобы быть более эффективным, или каким-то другим способом я мог бы быть более эффективным? Я собираюсь попытаться включить некоторые проверки типов различий при перезагрузке, чтобы мне не приходилось делать все эти запросы API каждый раз, когда пользователь перезагружается (я включил некоторую пакетную обработку с использованием map и Promise.all, чтобы ограничить мои запросы API, но я Иногда я все еще получаю 403 ошибки ограничения скорости API), но мне кажется, что я чего-то упускаю.

0
Stephen 27 Мар 2019 в 06:50

1 ответ

Лучший ответ

Есть ли одна конечная точка API для комментариев Google Диска в нескольких файлах?

Нет, нет. Большая часть Диска Google основана на файлах, поэтому все взаимодействия должны включать файл, в котором вы хотели бы видеть данные.

Например, file.comments

https://www.googleapis.com/drive/v3/files/**fileId**/comments

Чтобы увидеть комментарии к файлу, вы должны отправить API файл, к которому вы хотите видеть комментарии.

1
DaImTo 27 Мар 2019 в 07:58