導入:部分回應

以下範例說明如何在 YouTube Data API (v3) 中擷取部分 API 回應。

注意:API 的入門指南針對部分要求和回應提供更多詳細資訊。

第 3 版 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 回應。