В примерах ниже показано, как получить частичные ответы API в YouTube Data API (v3).
Примечание. В руководстве по началу работы с API приведена более подробная информация о частичных запросах и ответах.
API версии 3 позволяет и даже требует извлекать частичные ресурсы, чтобы приложения не передавали, не анализировали и не хранили ненужные данные. Такой подход также позволяет API более эффективно использовать ресурсы сети, ЦП и памяти.
API поддерживает два параметра запроса: part и fields. С их помощью можно указать, какие свойства ресурса должны быть включены в ответы API. Параметр part также определяет свойства, которые должны быть заданы запросами к API, вставляющими или обновляющими ресурсы.
Обратите внимание, что если в запросе на обновление не указано значение для свойства ресурса, у которого оно было ранее, существующее значение будет удалено при соблюдении следующих условий:
-
Значение свойства можно изменить с помощью запроса. Например, при обновлении ресурса
videoвы можете изменить значение свойстваsnippet.description, но не объектаsnippet.thumbnails. -
Значение параметра
partв запросе определяет часть ресурса, которая содержит свойство.
Пример
Предположим, вы хотите обновить ресурс video, показанный ниже. (Обратите внимание, что все перечисленные ниже свойства можно изменить с помощью API, а свойства ресурсов, не относящиеся к примеру, опущены.)
{
"snippet": {
"title": "Old video title",
"description": "Old video description",
"tags": ["keyword1","keyword2","keyword3"],
"categoryId: 22
},
"status": {
"privacyStatus": "private",
"publishAt": "2014-09-01T12:00:00.0Z",
"license": "youtube",
"embeddable": True,
"publicStatsViewable": True
}
}Вы вызываете метод videos.update и задаете для параметра part значение snippet. Тело запроса к API содержит следующий ресурс:
{
"snippet": {
"title": "New video title",
"tags": ["keyword1","keyword2","keyword3"],
"categoryId: 22
}
}Этот запрос обновляет название видео, удаляет его описание и не изменяет его теги или идентификатор категории. Описание видео удаляется, поскольку в запросе не указано значение свойства snippet.description.
Свойства в объекте status не затронуты, поскольку значение параметра part не включало status в качестве одной из частей, которые будут обновлены запросом. Если в теле запроса к API будет объект status, API вернет HTTP-ответ 400 (Bad Request), поскольку в теле запроса содержится неожиданная часть.