В следующих примерах показано, как получить частичные ответы 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)
из-за неожиданной части , включенной в тело запроса.