以下示例展示了如何在 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 响应。