2015年8月

2015年8月 6日 (木)

SharePoint では REST API を使用した SharePoint コンテンツへの CRUD 処理が行えます。以前は詳細(Verbose) OData メタデータのみをサポートしていましたが、現在では JSON Light もサポートしています。この対応は、オンプレミスでは Service Pack 1 のアップデートで行われ、既に Office 365 側も利用できるようになっています(※ SharePoint とは別に、WCF Data Services 5.0 は既に OData v3 にて対応済みです)。

さて、JSON Light 対応とは何か? 簡単に説明しておきましょう。

従来は、REST API を呼び出す際に要求ヘッダーに次のように指定していました。

"accept:application/json;odata=verbose"

このため、多くのSharePoint 資料は verbose を指定しています。

verbose 指定は現在ではオプション扱いです。verbose を指定することですべてのメタデータを取得してきます。しかし、開発者側からは特に使用する必要のないメタデータがある場合、これをすべて取得することはペイロードの増大につながるため、避けたいところです。

JSON Lightに対応することで、1.メタデータなし、2.最小限、3.完全 のいずれかを指定できるようになりました。

1. メタデータを指定しない場合は、"accept: application/json; odata=nometadata" と指定します。

2. 最小限のメタデータのみでよい場合は、 "accept: application/json; odata=minimalmetadata" と指定します。なお、メタデータ要求を明示しない " " の場合は、既定値はこの minimalmetadata 指定をした場合と同じです。

3. すべてのメタデータを取得したい場合は、従来通り記載します。

ちなみに、Office Blog に公開されていてる記事では、リストからいくつかのリスト アイテムを要求した場合の応答データサイズが計測されています。

  • verbose : 46,647バイト
  • minimalmetadata : 11,173バイト
  • nometadata : 6,832バイト

不必要なメタデータの取得はしないよう心がける必要がありますね。

参考