SharePoint REST API-RESTエンドポイントURLの決定

4516 ワード

ブログアドレス:http://blog.csdn.net/FoxDave
SharePoint RESTエンドポイントURIの構成
RESTでSharePointリソースにアクセスできるようになる前に、まず対応するURIエンドポイントを見つけることです.Client APIに詳しい場合は、Client APIを参照して構築を推測することもできます.たとえば.
クライアントオブジェクトモデルの方法:
List.GetByTitle(listname).GetItems()

対応するREST端点URIは:
http://server/site/_api/lists/getbytitle('listname')/items
しかし、RESTおよびOData規格を遵守するために、RESTエンドポイントおよびClient APIは必ずしも一致しない.次の図は、REST APIの一般的な構文構造を示しています.
SharePoint REST API - 确定REST端点URL_第1张图片
いくつかのSharePointリソースにアクセスするAPIは、この構文構造と一致しません.
>複雑なタイプのパラメータが必要な方法
>静的メソッドとプロパティ
SharePoint RESTサービスのエンドポイントの特定
SharePointリソースにアクセスするRESTエンドポイントを構築するには、次の手順に従います.
1.RESTサービスリファレンスの開始http://server/site/_api
2.Webなどの適切なエントリの指定http://server/site/_api/web
3.アクセスするリソースを指定します.これは通常、クライアント・オブジェクト・モデルと一致します.http://server/site/_api/web/lists/getbytitle('listname')
あなたのURIの端点であなたのSharePoint RESTサービスを引用します
使用_apiはSharePoint RESTサービスを表し、RESTサービスはclient.svcネットワークサービスの一部であり、RESTは簡略化のために変更された.apiで表します.つまり、http://server/site/_vti_bin/client.svc/web/listsおよびhttp://server/site/_api/web/listsどちらのフォーマットもサポートされていますが、推奨されています.apiは、URLに256文字の制限があるため、このようにします.
SharePoint RESTサービスのエントリの指定
RESTサービスのメインエントリは、ClientContext.SiteとClientContext.Webの2つのプロパティは一致しています.
指定したWebサイトセットにアクセスする場合は、http://server/site/_api/site.指定したWebサイトにアクセスする場合は、http://server/site/_api/web.次の表は対応関係です.
Feature area
Access point
Site
http://server/site/_api/site
Web
http://server/site/_api/web
User Profile
http://server/site/_api/SP.UserProfiles.PeopleManager
Search
http://server/site/_api/search
アクセスしたい指定されたリソースにアクセス
クライアント・オブジェクト・モデルに基づいて、以下の表に示すように、RESTサービスがアクセスしたいリソースにアクセスするように構築されます.
**Client object model API **
REST endpoint
ClientContext.Web.Lists
http://server/site/_api/web/lists
ClientContext.Web.Lists[guid]
http://server/site/_api/web/lists(' guid')
ClientContext.Web.Lists.GetByTitle("Title")
http://server/site/_api/web/lists/getbytitle(' Title')
REST端点URIでパラメータを指定する
SharePointはOData仕様を拡張し、カッコを使用してメソッドのパラメータとインデックスの下付き値を指定できます.これはURIに複数の同名パラメータが含まれている場合の潜在的な不明確な問題を防止する.たとえばhttp://server/site/_api/web/lists/getByTitle('Announcements')/fields/getByTitle('Description')とhttp://server/site/_api/web/lists('')/fields/getById('').
パラメータがキー値ペアの場合は、カンマで区切ります.http://server/site/_api/web/getAvailableWebTemplates(lcid=1033, includeCrossLanguage=true).
RESTサービスにおける複雑なパラメータタイプ
クライアントオブジェクトモデルのいくつかの方法では、パラメータとして大きなデータが必要であり、RESTもこの能力を提供するが、URLではなくPOSTによって動作する.例えば、ListCollection.AddメソッドにはMicrosoftが必要です.SharePoint.Client.ListCreationInformationはパラメータとして、次のような要求を構築する必要があります.
http://server/site/_api/web/lists/add
{ "d" : {
   "results": {
     "__metadata": {
       "type": "SP.ListCreationInformation"
     }, 
     "CustomSchemaXml": "…large payload…/", 
     "Description": "desc", 
     "DocumentTemplateType": "1", 
     "TemplateType": "101", 
     "Title": "Announcements"
   }
} 
}

RESTサービス要求での別名の使用
パラメータエイリアスを定義してSharePoint RESTを要求し、直接例で説明することができます.
直接要求の様子:http://server/site/_api/web/applyWebTemplate("STS#0")
別名を使用する様子:http://server/site/_api/web/applyWebTemplate(title=@template)?@template="STS#0"
複雑なパラメータ、すなわちhttp://server/site/_api/userProfiles/People(7)/GetWorkplace(@address)?@address={"_metadata":{"type:"ODataDemo.Address"},"Street":"NE 228 th","City":"Sammaish","State":"WA","ZipCode":"98074","Country":"USA"}はサポートされていません.
RESTサービスURIでの静的メソッドと属性の使用
静的メソッドまたは属性のRESTサービスURIを構築し、ECMAScriptオブジェクトモデルに一致するAPI名を使用します.http://server/site/_api/SP.Utilities.Utility.getImageUrl('imageName').この方法はパラメータとして渡すことができず、直接呼び出すしかないことに注意してください.例を挙げて説明します.
http://server/site/_api/SP.Utility.assetsLibrary/idいいですが、http://server/site/_api/getList(~SP.Utility/assetsLibrary/id)ではダメです.
本編はここまでです.