以下範例說明如何在 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 回應,因為要求主體中包含意外的部分。