Youtube API V3 и Etag
Я использую YouTube Api v3, и я хотел бы понять, как работает Etag. Я хотел бы использовать его для целей кэширования, но я не знаю, что делать в PHP. Не могли бы вы сказать мне, какие шаги нужно предпринять после восстановления этаг? Пожалуйста. Спасибо за помощь.
3 ответа
Согласно документации YouTube ( https://developers.google.com/youtube/v3/getting-started), eTag в основном используется для определения того, изменился ли ресурс. Используйте их для:
Оптимизация. Кэширование ресурсов YouTube в вашем приложении может снизить пропускную способность и задержку. При кэшировании храните eTag, чтобы вы могли включить его при получении ресурса. Если ресурс не изменился, вы получите код ответа 304 (НЕ ИЗМЕНЕН), что означает, что вы можете использовать свою кэшированную версию. В противном случае вы получите обновленную версию ресурса.
Использование квоты. Вы можете уменьшить количество нажатий на квоту, кэшируя данные YouTube. В первый раз, когда вы получите ресурс, вы подключитесь к своей квоте. Перед отображением ресурса сначала проверьте, изменился ли ваш кэшированный ресурс, что обойдется вам всего в 1 единицу квоты. Если ресурс не изменился, YouTube вернет ответ 304. Если он изменился, вы можете снова получить ресурс, заплатив различные единицы квоты в зависимости от того, что вы получаете. Подробнее о вашей квоте: ( https://developers.google.com/youtube/v3/getting-started).
Защита от перезаписи. Если вы перезаписываете ресурс, то eTag гарантирует, что вы не перезаписываете более новую версию ресурса.
eTag s являются частью спецификации HTTP 1.1 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) и используются в заголовках запроса / ответа. Вот хорошая статья, которая говорит о них на низком уровне: http://www.ibuildings.com/blog/2013/07/etags-uninitiated
Что касается использования eTag s в PHP, я могу предложить только пару вещей, поскольку я никогда этого не делал. YouTube возвращает электронные теги для каналов и отдельных элементов в канале, и я не уверен, как использовать их для отдельных элементов в канале. Но для получения самого исходного канала, по сути, вы должны использовать curl и добавить eTag в заголовок вашего запроса ( пользовательские заголовки PHP cURL). Вы также можете проверить http_cache_etag ( http://www.php.net/manual/en/function.http-cache-etag.php).
Я искал похожую информацию, но не смог найти наглядного примера на сайте YouTube. С другой стороны, кажется, что Facebook использует аналогичный подход (Etags, чтобы проверить, изменился ли ресурс), и эти две ссылки, которые я нашел в разделе разработчиков Facebook, могут помочь:
https://developers.facebook.com/docs/reference/ads-api/etags-reference/ и https://developers.facebook.com/blog/post/627/
Первый объясняет более простой и подробный способ использования etags и предоставляет несколько примеров запросов / ответов.
Вторая ссылка содержит пример PHP о том, как извлечь ресурс, извлечь etag и использовать его в последующем запросе.
Конечно, эти ссылки содержат информацию, относящуюся к веб-сайту Facebook, но по большей части они могут быть применены и к YouTube.
Я не уверен, что кто-то все еще будет заинтересован, но я разместил ответ о том, как использовать etag в использовании API YouTube здесь. Идея работает не только для API YouTube. Пост довольно длинный, но надеюсь, что он может помочь.