YouTube API

时间:2016-09-15 13:41:25

标签: youtube-api etag

我正在考虑在YouTube API之上构建缓存层,并使用HTTP标准ETag功能执行此操作,如此处所述https://developers.google.com/youtube/v3/getting-started#etags

我已经针对API做了一些针对API的直接测试,在大多数情况下它似乎正在起作用 - 我可以得到304个响应等。

但是当我没有改变响应时,我看到API返回不同ETag的一些地方。 在这些情况下,ETag似乎在一组值之间循环而不是单个一致值。 当我选择其中一个ETag并使用它发送一个条件GET时,我有时会得到一个304返回(当它匹配时)或有时得到一个带有完整响应的200(当它是其他值之一时),即使实际响应数据是一样的。

我至少在两个地方发现了这种行为:

1)youtube / v3 / channels part = brandingSettings

在这里的回复中,brandingSettings有一个"提示" value是一个大小为3的数组。 此数组中元素的顺序是随机的,并且每个请求都有所不同,但它似乎会影响etag,这意味着我得到6个(3个项目的排列)相同数据的不同可能的ETag值。 数组顺序应该是固定的还是ETag生成算法应该考虑到这个?

2)youtube / v3 / channels part = contentDetails

尽管数据没有其他差异,但此处响应的ETag似乎在3个不同的值之间变化。特别是其他的" etag"值"项目"保持不变。

这是YouTube API Etag实施中的错误吗?当然,这种行为会破坏任何试图减少YouTube API数据检索的缓存层吗?

0 个答案:

没有答案