SharePoint 2013 で REST サービスを使用したプログラミング方法

こんにちは。江口です。今回は、SharePoint Server 2013 の REST サービスについてご紹介します。

 

はじめに

iOS アプリまたは Android アプリを作成する際は、REST/Odata エンドポイント API を使用することが適切です。

これまでにも過去のバージョンより SOAP Web サービスや、SharePoint 2010 より ListData.svc など一部の REST サービスは存在しておりましたが、SharePoint 2013 より提供される client.svc では非常に多くの機能が拡充されました。

さらに、クライアント サイド オブジェクト モデル (CSOM) や JavaScript オブジェクト モデル (JSOM) といったクライアント サイドの API はこのサービスを使用して提供されるよう変更されており、特に SharePoint アプリなどを含むクラウドにおけるサービスや、接続する様々なデバイスなど、幅広いテクノロジーを考慮し、CSOM, JSOM, REST といったクライアント サイドの開発方法は今後の主流な開発方法になっていくと思います。

 

タイトル : SharePoint 2013 での適切な API セットの選択

URL : https://msdn.microsoft.com/ja-jp/library/jj164060.aspx

________________________________________

SharePoint データに対して CRUD 操作を実行する iOS アプリまたは Android アプリを作成する

REST/OData エンドポイント

________________________________________

 

RESTサービスを使うことで、SharePoint のサイトやリストのデータを HTTP 要求/応答のやり取りで操作(作成、表示、更新、削除) することができます。

上記にて記載した通り、SharePoint 2013 で導入された REST サービスは、.NET Farmework と Silverlight で提供されているクライアント オブジェクト モデル (CSOM) と完全に同じ機能を提供しています。

このように SharePoint 2013 ではプラットフォームを選ばない API が大量に拡充されました。そのため、Windows プラットフォームにおけるの開発経験のない開発者の方でも、SharePoint サイト向けアプリの開発を抵抗無く始めることができます。

詳しい REST サービスを使用した プログラミング方法は、以下を参照してください。

 

タイトル : SharePoint 2013 REST サービスを使用したプログラミング

URL : https://msdn.microsoft.com/ja-jp/library/fp142385.aspx

 

タイトル : [方法] SharePoint 2013 REST エンドポイントを使用して基本的な操作を完了する

URL : https://msdn.microsoft.com/ja-jp/library/jj164022.aspx

 

 

REST サービスのサンプルコード

では実際に、SharePoint 2013 の REST サービスを使ってみましょう。
次のサンプル コードは、指定した SharePoint サイトのリスト内のリスト アイテムの一覧を表示するコードです。
どの開発環境からも簡単にご確認いただけるよう、  SharePoint Online サイトに jQuery を使用して REST サービスを呼び出す方法で実装しています。
HTML ファイルとして保存しブラウザで表示してください。

- 事前準備
・30 日間無料試用版 の Office 365 に登録 (Office 365 Enterprise E3)
・SharePoint Designer 2013 をダウンロード (SharePoint Designer 2013)
・SharePoint サイトとリストの作成

- 手順
1. SharePoint Desinger 2013 を起動
2.[サイトを開く] をクリックして、事前準備で作成した SharePoint サイトの URL を入力し、[開く] をクリック
3. [すべてのファイル] をクリックして、リボンメニューから [ファイル] - [HTML] をクリックして新規 HTML ファイルを作成

4. HTML ファイルの内容を以下の内容に変更

--- ここから ---
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script>
    <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
</head>
<body>
    <script type="text/javascript">
        // 環境に合わせて設定してください。
        //リストの URL が https://spsite.sharepoint.com/Lists/customlist1 の場合は次のように指定します。
        var spsite = "https://spsite.sharepoint.com/";
        var list = "customlist1";
        $(document).ready(function () {
            getSPListItems();
        });
        function getSPListItems() {
            $.support.cors = true;
            $.ajax({
                url: spsite + "_api/Web/Lists/GetByTitle('" + list + "')/Items",
                type: "GET",
                headers: {
                    "accept": "application/json;odata=verbose",
                },
                success: this.successGetItems,
                error: function (xhr) { alert(xhr.status + ": " + xhr.statusText) }
            });
        }
        function successGetItems(data) {
            var strres = "";
            strres += "<tr><td><b>" + "Items on " + list + "</b></td></tr>";
            for (i = 0; i < data.d.results.length ; i++)
            {
                strres += "<tr><td>";
                strres += data.d.results[i].Title;
                strres += "</td></tr>";
            }
            if (strres == "")
            {
                strres += "<tr><td>(Empty)</td></tr>";
            }
            strres = "<table>" + strres + "</table>";
            $("#P1").html(strres);
        }
        </script>

    <div id="P1"></div>
</body>
</html>
--- ここまで ---

5.ファイルを保存し、リボンメニューから [ブラウザーでプレビュー] をクリック

 

上記手順を実行すると、ブラウザで次のような表示結果が得られます。

 

 

補足

REST サービスは OData 標準に準拠して実装されております。上記例のように単純にデータを取得できるだけでなく、URL のクエリ文字列に $filter を指定することでフィルターを行ったり、$orderbyを指定することでソートするなど、多様なデータ アクセスが可能です。
これらのパラメータの全般的な資料につきましては、以下のサイトにも記載されておりますので、ご参考の上ご要望の動作を実現いただけますと幸いです。

タイトル : ODataURL :
https://www.odata.org/documentation/uri-conventions

まとめ

REST サービスを使用することで、従来よく使われてきたサーバー サイド オブジェクト モデル以外のやり方で、様々な OS やデバイスから SharePoint のデータを操作することができます。

このような REST サービスを使用した様々なサードパーティ製モバイル デバイス用アプリは現在公開されています。
弊社からも、今年初春に SharePoint Newsfeed アプリが各モバイル デバイス用にリリースされています。
是非、お手元のモバイル デバイスにインストールいただき、SharePoint を活用してください。

 

タイトル : SharePoint Newsfeed アプリを試す

URL : https://office.microsoft.com/ja-jp/office365-sharepoint-online-enterprise-help/HA103683516.aspx