Вы можете обновить одну метку, применив набор запросов на обновление, что приведет к созданию новой версии черновика. Например, вы можете обновить существующее свойство метки (описание метки) или добавить новое Field
к метке.
Обновление метки действует как пакетное обновление, поскольку метод принимает список объектов Request
на обновление. Он выполняет обновления в том же порядке, что и в пакетном запросе. Обновления в пакетном обновлении применяются атомарно. То есть, если какой-либо запрос в пакете не удался, то всё обновление также не увенчается успехом, и ни одно из (потенциально зависимых) изменений не применяется. Метка остаётся неизменной.
Если обновление прошло успешно, полученный черновой вариант должен быть опубликован, прежде чем изменения можно будет использовать с любым элементом Диска.
Обновить объекты меток
Метка включает в себя множество других типов объектов, которые можно обновлять, например:
- Свойства этикетки
- Поля и типы полей
- Выбор вариантов и свойства выбора выбора
Это некоторые из множества объектов, которые управляют внешним видом и функционированием этикетки.
Категории операций
Следующие операции, поддерживаемые методом labels.delta
, можно сгруппировать в следующие общие категории:
Категория | Описание |
---|---|
Создавать | Добавьте объекты. |
Обновлять | Обновить определенные свойства объекта. |
Давать возможность | Включить объекты. |
Запрещать | Отключить объекты. |
Удалить | Удалить объекты. |
Эти категории используются в следующем разделе для описания поведения конкретных операций.
Запросы на обновление
Метод labels.delta
принимает один или несколько объектов Request , каждый из которых определяет один тип запроса для выполнения. Существует множество различных типов запросов. Ниже представлена разбивка по типам запросов, сгруппированных по различным категориям.
Тип запроса | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Свойства этикетки |
| ||||||||||
Поле |
| ||||||||||
Выбор выбора |
|
Полевые маски
Для многих запросов типа «Обновление» и «Отключение» требуется FieldMask
. Это список полей, разделённых запятыми, которые вы хотите обновить, оставив остальные поля без изменений. Маска необходима, чтобы обновить только те поля, которые вы хотите изменить. Необходимо указать хотя бы одно поле.
Пример
Чтобы обновить метку, используйте метод delta
для коллекции labels
.
Также необходимо указать:
useAdminAccess
равноtrue
, чтобы использовать учетные данные администратора. Перед предоставлением доступа сервер проверяет, является ли пользователь администратором метки.Request
, в котором указаны применимые обновления этикетки.title
метки через методproperty
.Одно или несколько
Field
.Ресурс Label , представляющий каждую метку. Он содержит
Name
ресурса иID
, который является глобальным уникальным идентификатором метки.LabelView
— этоLABEL_VIEW_FULL
, чтобы задать представление ресурсов, применяемое к ответам на метки.LABEL_VIEW_FULL
возвращает все возможные поля.
В этом примере ID
используется для обновления правильной метки.
Питон
body = {
'use_admin_access': True,
'requests': [{
'update_label': {
'properties': {
'title': 'TITLE'
},
'update_mask': {
'paths': ['title']
}
},
}, {
'create_field': {
'field': {
'properties': {
'display_name': 'DISPLAY_NAME'
},
'text_options': {}
}
}
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
body=body,
name='labels/ID').execute()
Node.js
var body = {
'use_admin_access': true,
'requests': [{
'update_label': {
'properties': {
'title': 'TITLE'
},
'update_mask': {
'paths': ['title']
}
},
}, {
'create_field': {
'field': {
'properties': {
'display_name': 'DISPLAY_NAME'
},
'text_options': {}
}
}
}],
'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
'resource': body,
'name': 'labels/ID'
}, (err, res) => {
if (err) return console.error('The API returned an error: ' + err);
console.log(res);
});
Метка, поле или вариант выбора обновляются, идентификатор версии метки увеличивается, и метка сохраняется в базе данных как черновик. Метка имеет State
PUBLISHED
с hasUnpublishedChanges=true
что означает наличие черновиков изменений, но они недоступны пользователям. Обновлённая метка должна быть PUBLISHED
, чтобы изменения стали видны пользователям. Подробнее см. в разделе Жизненный цикл метки .