Youtube api YouTube API etag缓存,每次请求etag都会刷新
第一步: 我发送了GET请求Youtube api YouTube API etag缓存,每次请求etag都会刷新,youtube-api,youtube-data-api,Youtube Api,Youtube Data Api,第一步: 我发送了GET请求 curl --location --request GET 'https://www.googleapis.com/youtube/v3/videos?key={API_KEY}&part=id&chart=mostPopular®ionCode=es&videoCategoryId=17&maxResults=25' 我收到了200个OK回复,身体: { "kind": "youtube#videoListR
curl --location --request GET 'https://www.googleapis.com/youtube/v3/videos?key={API_KEY}&part=id&chart=mostPopular®ionCode=es&videoCategoryId=17&maxResults=25'
我收到了200个OK回复,身体:
{
"kind": "youtube#videoListResponse",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt_kvnG7LpS3dIQoCig\"",
"nextPageToken": "CBkQAA",
"pageInfo": {
"totalResults": 181,
"resultsPerPage": 25
},
"items": [
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_GxV3cYD2wcterTfViCosiAVb54\"",
"id": "LGnQfH8dnow"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/-qYNOMCfpr8knbAS5auTTwRVt5Q\"",
"id": "3cO8sTv9aE4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/4VBqB7u16yEkTMk6sSYEOI4P-hs\"",
"id": "8-7b4Ixavrg"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/ppyJEw0-OpZ3VI56IIn4vwl6Ja8\"",
"id": "tZvxbUosFWw"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/qk0x2ve66gTYW6_g8O4BWlfrvJU\"",
"id": "_4-KEZw9bX4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/XP7oKSr0MwfURXwaW5nr1Qi8WbE\"",
"id": "sgERdPX_dkM"
},
...(other videos...)
]
}
{
"kind": "youtube#videoListResponse",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_ruxn7w4X-iRBUUok6BWY66DtLU\"",
"nextPageToken": "CBkQAA",
"pageInfo": {
"totalResults": 181,
"resultsPerPage": 25
},
"items": [
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_GxV3cYD2wcterTfViCosiAVb54\"",
"id": "LGnQfH8dnow"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/-qYNOMCfpr8knbAS5auTTwRVt5Q\"",
"id": "3cO8sTv9aE4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/4VBqB7u16yEkTMk6sSYEOI4P-hs\"",
"id": "8-7b4Ixavrg"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/ppyJEw0-OpZ3VI56IIn4vwl6Ja8\"",
"id": "tZvxbUosFWw"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/qk0x2ve66gTYW6_g8O4BWlfrvJU\"",
"id": "_4-KEZw9bX4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/XP7oKSr0MwfURXwaW5nr1Qi8WbE\"",
"id": "sgERdPX_dkM"
},
...(other videos...)
]
}
我将body.etag
值保存在缓存中,在我这边。此值:“etag”:“\”tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt\u kvnG7LpS3dIQoCig\”
我又发送了一次相同的GET请求,但我添加了如果没有匹配:“tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt_kvnG7LpS3dIQoCig”
HTTP头到这个GET请求中
curl --location --request GET 'https://www.googleapis.com/youtube/v3/videos?key={API_KEY}&part=id&chart=mostPopular®ionCode=es&videoCategoryId=17&maxResults=25' \
--header 'If-None-Match: "tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt_kvnG7LpS3dIQoCig"'
我收到了200个OK回复,身体:
{
"kind": "youtube#videoListResponse",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt_kvnG7LpS3dIQoCig\"",
"nextPageToken": "CBkQAA",
"pageInfo": {
"totalResults": 181,
"resultsPerPage": 25
},
"items": [
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_GxV3cYD2wcterTfViCosiAVb54\"",
"id": "LGnQfH8dnow"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/-qYNOMCfpr8knbAS5auTTwRVt5Q\"",
"id": "3cO8sTv9aE4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/4VBqB7u16yEkTMk6sSYEOI4P-hs\"",
"id": "8-7b4Ixavrg"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/ppyJEw0-OpZ3VI56IIn4vwl6Ja8\"",
"id": "tZvxbUosFWw"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/qk0x2ve66gTYW6_g8O4BWlfrvJU\"",
"id": "_4-KEZw9bX4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/XP7oKSr0MwfURXwaW5nr1Qi8WbE\"",
"id": "sgERdPX_dkM"
},
...(other videos...)
]
}
{
"kind": "youtube#videoListResponse",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_ruxn7w4X-iRBUUok6BWY66DtLU\"",
"nextPageToken": "CBkQAA",
"pageInfo": {
"totalResults": 181,
"resultsPerPage": 25
},
"items": [
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/_GxV3cYD2wcterTfViCosiAVb54\"",
"id": "LGnQfH8dnow"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/-qYNOMCfpr8knbAS5auTTwRVt5Q\"",
"id": "3cO8sTv9aE4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/4VBqB7u16yEkTMk6sSYEOI4P-hs\"",
"id": "8-7b4Ixavrg"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/ppyJEw0-OpZ3VI56IIn4vwl6Ja8\"",
"id": "tZvxbUosFWw"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/qk0x2ve66gTYW6_g8O4BWlfrvJU\"",
"id": "_4-KEZw9bX4"
},
{
"kind": "youtube#video",
"etag": "\"tnVOtk4NeGU6nDncDTE5m9SmuHc/XP7oKSr0MwfURXwaW5nr1Qi8WbE\"",
"id": "sgERdPX_dkM"
},
...(other videos...)
]
}
我希望收到304没有修改,不是200 OK和相同的结果。
但我还是收到了200 OK和新etag的回复。看截图
我希望只有一个第一反应。当我请求与
相同的查询时,如果没有匹配,“tnVOtk4NeGU6nDncDTE5m9SmuHc/CcRzMe1sxt_kvnG7LpS3dIQoCig”
导致请求的数据没有更改。对不起,可能是我不理解此文档中的某些内容,但我在这里读到了:它是否以另一种方式工作?响应主体根目录(或响应标题)中的etag是否描述了youtube#VideoListResponse?有没有办法通过etag缓存此查询?请明确定义您的问题:您没有获得预期的etag或预期的HTTP响应代码?目前的问题模棱两可。请包括准确的GET请求,以便请求25个最受欢迎的视频,如您所述,包括标题。问题不清楚。您好,我已经编辑了这个问题。现在清楚了吗?谢谢你!现在问题很清楚了。你知道这种行为的原因吗?对不起,可能是我不理解这份文件中的某些内容,但我在这里读到了:它是以另一种方式工作的吗?响应主体根目录(或响应标题)中的etag是否描述了youtube#VideoListResponse?有没有办法通过etag缓存此查询?请明确定义您的问题:您没有获得预期的etag或预期的HTTP响应代码?目前的问题模棱两可。请包括准确的GET请求,以便请求25个最受欢迎的视频,如您所述,包括标题。问题不清楚。您好,我已经编辑了这个问题。现在清楚了吗?谢谢你!现在问题很清楚了。你知道这种行为的原因吗?