Запросы и ответы

В этом руководстве описываются основные методы запросов и ответов, из которых состоит API Google Docs, а также способы пакетного обновления документов.

Вы можете вызвать API Google Docs с помощью HTTP-запроса или вызова метода в клиентской библиотеке , специфичной для конкретного языка. Эти методы в целом эквивалентны.

API Google Docs возвращает HTTP-ответ, который обычно включает результат выполнения запроса. При использовании клиентской библиотеки для выполнения запросов ответы возвращаются в формате, зависящем от языка.

Методы запроса

API Docs поддерживает следующие методы:

  • documents.create : создание пустого документа Google Docs.

  • documents.get : возвращает полный экземпляр указанного документа. Вы можете проанализировать возвращаемый JSON-файл, чтобы извлечь содержимое документа, форматирование и другие характеристики.

  • documents.batchUpdate : отправляет список запросов на редактирование для атомарного применения к документу и возвращает список результатов.

Методы documents.get и documents.batchUpdate требуют documentId в качестве параметра для указания целевого документа. Метод documents.create возвращает экземпляр созданного документа, из которого можно прочитать documentId . Подробнее о documentId см. в разделе Document ID .

Обратите внимание, что метод documents.get нельзя использовать для извлечения опубликованных документов. После публикации общедоступные документы используют другой формат URL. Попытки использовать новый documentId URL с помощью метода documents.get возвращают код статуса HTTP 404 Методов для извлечения исходного documentId из опубликованного URL нет. Чтобы обойти эту проблему, можно использовать API Диска, чтобы скопировать опубликованный документ в общий документ, а затем получить доступ к этому файлу. Подробнее см. в статье «Сделать Google Docs, Sheets, Slides & Forms общедоступными» .

Пакетные обновления

Метод documents.batchUpdate принимает список объектов request , каждый из которых определяет один запрос для выполнения. Например, форматирование абзаца и добавление встроенного изображения. Каждый запрос проверяется перед применением и обрабатывается в соответствии с порядком их появления в пакетном запросе.

Все запросы в пакетном обновлении применяются атомарно. То есть, если какой-либо запрос недействителен, всё обновление считается неуспешным, и ни одно из (потенциально зависимых) изменений не применяется.

Некоторые методы documents.batchUpdate предоставляют ответы с информацией о применённых запросах. Эти методы возвращают тело ответа , содержащее список объектов response . Другие запросы не обязаны возвращать информацию и возвращают пустой ответ. Объекты в списке ответа располагаются в том же индексном порядке, что и соответствующий запрос.

Популярный шаблон для создания пакетных запросов выглядит так:

requests = []
requests.append(first request)
requests.append(second request)
...

body = ... & requests & ...

...batchUpdate(body)

Подробную информацию о пакетной обработке вызовов API Docs см. в рекомендациях по пакетным запросам , а также в справочной документации documents.batchUpdate по типам запросов и ответов.

Пакетные операции обновления

Существуют различные типы запросов на пакетное обновление. Ниже представлена разбивка типов запросов , сгруппированных по различным категориям.

Объект ДОБАВИТЬ / ВСТАВИТЬ ОБНОВИТЬ / ЗАМЕНИТЬ УДАЛИТЬ
Текст InsertTextRequest ReplaceAllTextRequest
Стили CreateParagraphBulletsRequest UpdateTextStyleRequest
UpdateParagraphStyleRequest
UpdateTableCellStyleRequest
UpdateTableRowStyleRequest
UpdateDocumentStyleRequest
UpdateSectionStyleRequest
DeleteParagraphBulletsRequest
Именованные диапазоны CreateNamedRangeRequest ReplaceNamedRangeContentRequest DeleteNamedRangeRequest
DeleteContentRangeRequest
Изображения InsertInlineImageRequest ReplaceImageRequest
Таблицы InsertTableRequest
InsertTableRowRequest
InsertTableColumnRequest
UpdateTableColumnPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
PinTableHeaderRowsRequest
DeleteTableRowRequest
DeleteTableColumnRequest
Объекты страницы (включая верхние и нижние колонтитулы ) InsertPageBreakRequest
CreateHeaderRequest
CreateFooterRequest
CreateFootnoteRequest
InsertSectionBreakRequest
DeletePositionedObjectRequest
DeleteHeaderRequest
DeleteFooterRequest