В следующих примерах показано, как получить частичные ответы API в API данных YouTube (v3).
Примечание. В руководстве по началу работы с API содержится более подробная информация о частичных запросах и ответах.
API v3 позволяет и фактически требует извлечения частичных ресурсов, чтобы приложения избегали передачи, анализа и хранения ненужных данных. Этот подход также гарантирует, что 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) из-за неожиданной части , включенной в тело запроса.