以下示例显示了如何在 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 响应,因为请求正文中包含非预期的部分。