SharePoint で REST を使用して外部データにアクセスする

Business Connectivity Services (BCS) の Representational State Transfer (REST) URL を使用して、SharePointから外部データにアクセスする方法を説明します。 この記事では、Open Data Protocol (OData) ソースからデータを取得する外部リストを設定する方法を示します。

REST を使用して外部データにアクセスするための前提条件

REST を使用して SharePointから外部データにアクセスするには、次のものが必要です。

  • SharePoint
  • Visual Studio 2012
  • Office Developer Tools for Visual Studio 2012
  • 機能している SharePoint アドイン開発環境: 「 SharePoint の一般的な開発環境を設定する」の手順に従います。
  • パブリック OData.org プロデューサーへのアクセス

REST を使用した外部データへのアクセスに関する基本概念

SharePointの REST サービスは、特別に作成された URL を使用して外部データにアクセスする手段を提供します。 REST サービスのしくみと使い方については、以下の記事を参照してください。

表 1. SharePoint での REST のコア概念

記事のタイトル 説明
SharePoint REST サービスを使用したプログラミング SharePoint REST サービスの使用方法を説明します。REST サービスは、既存のクライアント オブジェクト モデルに匹敵する REST プログラミング インターフェイスを提供します。
SharePoint REST サービスの概要 SharePoint REST サービスを使用して SharePoint データへのアクセスおよび更新を行う方法と、REST および OData Web プロトコル標準を使用する方法についての基本事項を説明します。
SharePoint REST エンドポイントを使用して基本的な操作を完了する REST サービスで表される SharePointのデータ構造内を移動し、REST サービス経由で SharePoint アイテムに対する一般的な CRUD (作成、読み取り、更新、削除) 操作を実行し、アプリケーション間で SharePoint アイテムを同期し、アイテムを同時に制御する方法を説明します。

REST を使用して外部データにアクセスする SharePoint アドインの作成

ここでは、REST の機能を使用して外部データ ソースからデータを取得する要求を行うために、SharePoint アドインを設定して Web ページを構成する手順を示します。

SharePoint アドインの作成

  1. Visual Studio 2012 以降。
  2. SharePoint 用アプリ プロジェクトを作成します。
  3. アプリ名、アプリをデバッグするためのサイト URL、アプリのホスト方法 (自動ホスト、プロバイダーホスト、SharePoint ホスト) を含むアプリ設定を指定します。 ホスティング オプションの詳細については、「 SharePoint アドインを開発およびホストするためのパターンを選択する」を参照してください。
  4. [ 完了] を選択してアプリを作成します。

外部コンテンツ タイプを生成するには

  1. ソリューション エクスプローラーで、プロジェクトのショートカット メニューを開き、[ 追加]、[ 外部データ ソースのコンテンツ タイプ] の順に選択します。

  2. [ OData ソースの指定] ページで、接続先の OData サービスの URL を入力します。 ここでは、 https://www.odata.org/ecosystem で公開されている Northwind OData ソースを使用します。 OData サービスの URL を に http://services.odata.org/Northwind/Northwind.svc/設定し、データ ソースの名前を指定します。

    [次へ] を選択します。

  3. OData サービスによって公開されているデータ エンティティの一覧が表示されます。 Customers エンティティを選択します。 [ Create list instances for the selected data entities (except Service Operations) (選択したデータ エンティティのリスト インスタンスの作成 (サービス操作を除く))] チェックボックスがオンになっていることを確認してください。

  4. [ 完了] を選択します。

コード例: Home.aspx ページにスクリプトと HTML を追加する

ここまでの手順で、Northwind OData ソースからのデータを表示する外部コンテンツ タイプと外部リストが作成されました。

次は、アプリの作成時に作成された default.aspx ページを変更します。 ページの読み込みとともに実行されるクエリの結果を格納するコンテナーを追加します。 ページ読み込みイベントに対してスクリプトを実行することで、ページが閲覧されるたびにスクリプトが実行されるようになり、それによって Northwind OData ソースへの REST 呼び出しが行われてページにレコードが追加されます。

コンテナーを Default.aspx ページに追加するには

  1. ソリューション エクスプローラーで、[ Pages] モジュールにある Default.aspx ページを開きます。
  2. 次の div 要素をページに追加します。
<div id="displayDiv"></div>
  1. ページを保存します。

最後に、ページのロード時に実行される App.js ファイルにコードを追加します。

REST 呼び出しを行うように App.js ファイルを変更するには

  1. SharePoint プロジェクトの Scripts モジュールで、 App.js ファイルを開きます。
  2. ファイルの末尾に次のコードを貼り付けます。
$(document).ready(function () {

  // Namespace
  window.AppLevelECT = window.AppLevelECT || {};

  // Constructor
  AppLevelECT.Grid = function (hostElement, surlWeb) {
      this.hostElement = hostElement;
      if (surlWeb.length > 0 &amp;&amp; surlWeb.substring(surlWeb.length - 1, surlWeb.length) != "/")
          surlWeb += "/";
      this.surlWeb = surlWeb;
  }

  // Prototype
  AppLevelECT.Grid.prototype = {

      init: function () {

          $.ajax({
              url: this.surlWeb + "_api/lists/getbytitle('Customer')/items?$select=BdcIdentity,CustomerID,ContactName",
              headers: {
                  "accept": "application/json",
                  "X-RequestDigest": $("#__REQUESTDIGEST").val()
              },
              success: this.showItems
          });
      },

      showItems: function (data) {
          var items = [];

          items.push("<table>");
          items.push('<tr><td>Customer ID</td><td>Customer Name</td></tr>');

          $.each(data.d.results, function (key, val) {
              items.push('<tr id="' + val.BdcIdentity + '"><td>' +
                  val.CustomerID + '</td><td>' +
                  val.ContactName + '</td></tr>');
          });

          items.push("</table>");

          $("#displayDiv").html(items.join(''));
      }
  }

  ExecuteOrDelayUntilScriptLoaded(getCustomers, "sp.js");
});

function getCustomers() {
    var grid = new AppLevelECT.Grid($("#displayDiv"), _spPageContextInfo.webServerRelativeUrl);
    grid.init();
}

F5 キーを押して、アプリを SharePoint に展開します。 Default.aspx ページをアプリで参照すると、顧客リストがページに表示されます。

関連項目