Youtube api YouTube API中的ETag不一致

Youtube api YouTube API中的ETag不一致,youtube-api,etag,Youtube Api,Etag,我正在考虑在YouTube API上构建一个缓存层,并使用HTTP标准ETag功能来实现这一点,如下所述 我已经针对API做了一些直接测试,在大多数情况下,它似乎是有效的-我可以得到304个响应等等 然而,我看到一些地方,当响应没有改变时,API返回不同的ETag。 在这些情况下,ETag似乎在一组值之间循环,而不是一个一致的值。 当我选择一个ETag并使用它发送一个条件GET时,我有时会返回一个304(当它匹配时),有时会返回一个200(当它是其他值之一时),即使实际响应数据相同 我至少在两个

我正在考虑在YouTube API上构建一个缓存层,并使用HTTP标准ETag功能来实现这一点,如下所述

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

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

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

1) youtube/v3/channels部分=品牌设置

在这里的响应中,brandingSettings有一个“提示”值,它是一个大小为3的数组。 该数组中元素的顺序是随机的,并且随每个请求而变化,但是它似乎会影响etag,这意味着对于相同的数据,我会得到6个(3个项目的排列)不同的可能etag值。 数组顺序应该是固定的,或者ETag生成算法应该考虑到这一点

2) youtube/v3/channels部分=内容详细信息

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


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

您能提供更多信息吗?例如,您正在使用的示例请求是什么。请求是,第二个请求现在返回3个以上的不同请求etags@DavidGeary你是否解决了这个问题,或者理解了为什么会发生这种情况?我已经搜索了几个小时,但找不到解决方案。在从多个视频检索数据时,我遇到了同样的问题,ETag在几个值之间随机切换。@Drot抱歉,我没有找到解决方案。目前看来,它似乎是一个坏的etag实现。@DavidGary我注意到请求中,子数组中的项目位置以随机顺序显示,这导致etag发生变化。当这些阵列位置保持不变时,etag也保持不变。返回6个不同的可能位置和6个不同的ETag。