实现:部分响应

以下示例显示了如何在 YouTube Data API (v3) 中检索部分 API 响应。

注意:API 入门指南详细介绍了部分请求和响应。

v3 API 允许且实际上需要检索部分资源,以便应用避免传输、解析和存储不需要的数据。此方法还可确保 API 更高效地使用网络、CPU 和内存资源。

该 API 支持两种请求参数:partfields,它们可用于确定应包含在 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 响应,因为请求正文中包含非预期的部分