次の例は、YouTube Data API(v3)で API の部分レスポンスを取得する方法を示しています。
注: API のスタートガイドでは、部分的なリクエストとレスポンスについて詳しく説明します。
v3 API を使用すると、部分的なリソースを取得できるため、アプリケーションで不要なデータの転送、解析、保存を避けることができます。このアプローチにより、API はネットワーク、CPU}、メモリの各リソースをより効率的に使用できます。
API では、part
と fields
の 2 つのリクエスト パラメータがサポートされています。これにより、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
プロパティの値が指定されていないため、動画の説明が削除されます。
リクエストが更新される部分の 1 つとして part
パラメータ値に status
が含まれていなかったため、status
オブジェクトのプロパティに影響はありません。実際には、API リクエストの本文に status
オブジェクトが含まれている場合、リクエストの本文に予期しない部分が含まれているため、API は 400 (Bad Request)
HTTP レスポンスを返します。