以下示例展示了如何在 YouTube Data API (v3) 中检索部分 API 响应。
注意:该 API 的入门指南详细介绍了部分请求和响应。
v3 API 允许(实际上需要)检索部分资源,以便应用避免传输、解析和存储不需要的数据。这种方法还可确保 API 更高效地使用网络、CPU 和内存资源。
该 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
}
}此请求会更新视频的标题、删除其说明,但不会更改其标签或类别 ID。由于请求未为 snippet.description 属性指定值,因此系统会删除视频的说明。
status 对象中的属性完全没有受到影响,因为 part 参数值未将 status 作为请求要更新的部分之一。事实上,如果 API 请求的正文包含 status 对象,则由于请求正文中包含意外部分,API 会返回 400 (Bad Request) HTTP 响应。