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