Ошибка в документации и поведении 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 кажутся противоречивыми. Как корректно реализовать установку вложенности списков?