Осуществление: Частичные ответы

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