Sitecore OData Item Service を使う

samatsu 11/20/2017 1173 N/A Sitecore Programming

Sitecore 9 がリリースされたことを記念して、開発者向けにSitecore 9の新機能をいくつかご紹介していきます。

まず第一弾ということで、Sitecore OData Item Service を使ってみます!

Sitecore 8.2 以前では、 Item Service と Entity Service の2つがSitecore Services Client のコアサービスとして提供されていました。

Sitecore 9 から、OData形式でアイテムのデータを取得することができる Sitecore OData Item Service が提供されています。OData 形式で提供されるので OData形式のデータを処理することができる任意のツールで Sitecoreのコンテンツを簡単に読み込むことができるようになります。

Sitecore OData Item Service は読み取り専用です。アイテムの更新はできません。外部システムからの更新をサポートする場合は、 Item Service や Entity Service もしくは独自のWebサービスなどを利用することになります。

それでは早速 利用してみましょう。

まず、今回動作確認に使った環境は次の通りです。

  • Sitecore 9 Initial Release

Sitecore 9をインストールしただけの状態なので、Sitecore Client アプリケーション および  ライブのWeb サイト のデフォルトの言語は英語です。

1. API Key の準備

OData Item Service を呼び出すには、API キーが必要になります。ラウンチパッドにログインし、Sitecoreデスクトップを起動します。右下のデータベースのセレクターをクリックして、 Core データベースに接続します。コンテンツエディターを起動し、/sitecore/system/Settings/Services/API Keys を選択します。

挿入オプションから、 OData Item API Key をクリックしてAPI キーを表すアイテムを作成します。

アイテムの名前は任意の名前を指定してください。今回は、 Test という名前で作成します。

作成したアイテムのIDが APIキーになります。 クイック情報セクションにアイテムのIDが表示されます(下図参照)。IDはランダムです。環境によって異なりますので注意して下さい。

最低限必要なフィールドを変更していきます。Testアイテムの Database フィールドにアイテムを取得するデータベースの名前を入力します。今回は web を指定しています。Allowed Controllersフィールドに * を設定します。*の代わりに、Sitecore.Content.Services.Controllers.ItemsController を指定することもできます。

アイテムを保存します。保存したら忘れずに master データベースに切り戻します。

2. 動作確認

Sitecoreにログインしているブラウザーとは別のブラウザーを起動して、 OData Item Service を呼び出します。例えば、 /sitecore/content/home アイテムを取得する場合は次のアドレスをブラウザーに入力します。サーバー名や、sc_apikey に設定するAPIキーは環境に合わせて適宜変更してください。

http://<servername>/sitecore/api/ssc/aggregate/content/Items('/sitecore/content/Home')?sc_apikey={CA276C22-A9E8-4800-91CF-1F8E04BADB8E}

呼び出しに成功すると、次のような OData 形式のデータを取得できます。APIキーは クエリパラメーターだけでなく、リクエストヘッダーで指定することもできます。

 

APIキーが未設定の場合は、次のように 400のステータスコードが返ってきます。

日本語環境でうまく動作させるためには、 OData Item API Keyアイテムの日本語バージョンを作成して、英語バージョンと同じ値を設定するか、共有フィールドに変更してください。

メタデータの情報を確認したい場合は、/sitecore/api/ssc/aggregate/content/$metadata にアクセスします。

http://<servername>/sitecore/api/ssc/aggregate/content/$metadata

簡単ですが、説明は以上です。

一通り呼び出せるようになったら、あとは簡単にサンプルを参考にして使うことができるようになります。参考になるドキュメントをご紹介します。

API keys for the OData Item Service
The OData Item Service