Ошибка в документации и поведении API: updateParagraphStyle.paragraphStyle.bullet.nestingLevel

вероятность ошибки в документации или непредвиденного поведения API, касающейся установки уровня вложенности (nestingLevel) для маркированных списков через updateParagraphStyle.

Цель: Попытаться установить nestingLevel (0, 1, 2) для элементов маркированного списка, созданных через createParagraphBullets.

Описание проблемы:

Согласно официальной документации Google Docs API:

createParagraphBullets должен принимать поле nestingLevel.

updateParagraphStyle с ParagraphStyle.bullet должен позволять обновить nestingLevel внутри объекта Bullet. Для этого можно использовать fields: "bullet" или fields: "bullet.nestingLevel".

Однако, при попытке использовать эти методы, API возвращает ошибку

400 Bad Request:
  • При использовании createParagraphBullets с nestingLevel:
Unknown name "nestingLevel" at 'requests[X].create_paragraph_bullets': 
Cannot find field.
  • При использовании updateParagraphStyle.paragraphStyle.bullet.nestingLevel с fields: "bullet.nestingLevel":
Unknown name "bullet" at 
'requests[Y].update_paragraph_style.paragraph_style': Cannot find field.
  • При использовании updateParagraphStyle.paragraphStyle.bullet.nestingLevel с fields: "bullet":
Unknown name "bullet" at  
'requests[Z].update_paragraph_style.paragraph_style': Cannot find 
field. (та же ошибка, что и в п. 2).

Ожидаемое поведение:

Согласно документации, указанные структуры requests должны быть корректными и позволять установить nestingLevel.

Фактическое поведение:

API отвергает requests, содержащие nestingLevel в createParagraphBullets или bullet как поле в paragraphStyle внутри updateParagraphStyle, выдавая ошибку

Unknown name.

Шаги для воспроизведения (пример структуры requests):

  • Вариант 1 (через createParagraphBullets):

json

{
  "createParagraphBullets": {
    "range": {"startIndex": 10, "endIndex": 15},
    "bulletPreset": "BULLET_DISC_CIRCLE_SQUARE",
    "nestingLevel": 1  // <-- Ошибка: Unknown name "nestingLevel"
  }
}
  • Вариант 2 (через updateParagraphStyle с fields: "bullet.nestingLevel"):

json

{
  "updateParagraphStyle": {
    "range": {"startIndex": 10, "endIndex": 15},
    "paragraphStyle": {
      "bullet": {  // <-- Ошибка: Unknown name "bullet"
        "nestingLevel": 1
      }
    },
    "fields": "bullet.nestingLevel"
  }
}
  • Вариант 3 (через updateParagraphStyle с fields: "bullet"):
{
  "updateParagraphStyle": {
    "range": {"startIndex": 10, "endIndex": 15},
    "paragraphStyle": {
      "bullet": {  // <-- Ошибка: Unknown name "bullet"
        "nestingLevel": 1
      }
    },
    "fields": "bullet"
  }
}

Вопрос:

Каков правильный способ программно установить nestingLevel для элементов маркированного списка через Google Docs API? Документация и фактическое поведение API кажутся противоречивыми. Как корректно реализовать установку вложенности списков?


Ответы (0 шт):