Вы можете обновить одну этикетку, применив набор запросов на обновление, в результате чего будет создана новая черновая версия. Например, вы можете обновить существующее свойство метки (описание метки) или добавить к метке новое 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
прежде чем изменения станут видны пользователям. Дополнительные сведения см. в разделе Жизненный цикл метки .