以下範例說明如何在 YouTube Data API (v3) 中擷取部分 API 回應。
注意:API 的入門指南針對部分要求和回應提供更多詳細資訊。
第 3 版 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 回應。