REST サービスで表される SharePoint データ構造内を移動するNavigate the SharePoint data structure represented in the REST service

SharePoint REST サービスで作業するときは、多くの場合、特定の SharePoint アイテムの URL を知ることから始めますが、アイテムが保存されているフォルダーまたはライブライの構造体など、関連するアイテムにアクセスする必要性に気付かれるでしょう。When you're working with the SharePoint REST service, you'll often start out knowing the URL of a specific SharePoint item, but want to access related items, such as the folder or library structure where that item resides. たとえば、ユーザーが SharePoint ライブラリ内のドキュメントの URL を入力するアドインを作成するとします。For example, suppose you create an add-in where your user enters the URL of a document in a SharePoint library. アドインでその URL を分割し、実際の SharePoint サイト URL を明らかにする必要があります。Your add-in must then break down that URL to figure out the actual SharePoint site URL. それが完了したら、ユーザーに代わって、アドインで関連するアイテムまたはリソースの作成、更新、削除などの要求をさらに行うことができます。After it's done that, the add-in can then make more requests from the site on the user's behalf, such as to create, update, or delete related items or resources.

これを行うには、アドインで次の情報に関して SharePoint を照会する必要があります。To do this, your add-in needs to query SharePoint for the following information:

  • リソースを含むサイトおよびサイト コレクションのサーバー相対 URLThe server relative URLs of the site and site collection containing the resource.
  • POSTPUTMERGE、および DELETE などのリソースの状態を変更する要求を実行できるようにするフォーム ダイジェスト。A form digest to enable you to perform requests that change the state of the resource, such as POST, PUT, MERGE, and DELETE.

基本ステップThe basic process

  1. サイトとサイト コレクションのアドレスおよびフォーム ダイジェストにアクセスするための指定された URL と一緒に /contextinfo 演算子を使用します。Use the /contextinfo operator with the given URL to access the site and site collection addresses, and the form digest. /contextinfo 演算子は次の形式で使用します。Use the /contextinfo operator in the following format:

    http://server/web/doclib/forms/_api/contextinfo

    クロスサイト スクリプト作成の試行に対するセキュリティを強化するため、/contextinfo 演算子は POST 要求のみを受け入れます。To increase security against cross-site scripting attempts, the /contextinfo operator accepts only POST requests.

  2. 必要に応じて追加のリソースにアクセスするために /contextinfo 演算子が返す SPContextWebInformation オブジェクトのプロパティを使用します。Use the SPContextWebInformation object properties that the /contextinfo operator returns to access additional resources as desired.

試用するTry it

  1. 指定された SharePoint アイテムへの URL で始めます。例:Start with a URL to a given SharePoint item. For example:

    http://site/web/doclib/myDocument.docx

  2. URL の末尾から特定のリソースの名前を削除して、URL がドキュメント ライブラリ、フォルダー、またはリストを指すようにします。Remove the name of the specific resource from the end of the URL, so that the URL points to a document library, folder, or list. この場合は、次のようになります。In this case:

    http://site/web/doclib/

  3. REST サービス ポインターと /contextinfo 演算子を URL に追加します。Append the REST service pointer and the /contextinfo operator to the URL:

    http://site/web/doclib/_api/contextinfo

  4. 応答からフォーム ダイジェストと webFullUrl プロパティを読み取ります。Read the form digest and webFullUrl properties from the response.

  5. REST サービス ポインター _api を Web URL に追加します。Append the REST service pointer _api to the web URL.

  6. 結果の URL とフォーム ダイジェストを使って、必要な他のリソースを要求します。Use the resulting URL and the form digest to make requests for other resources you need.

GET 要求を行うか、検証された OAuth トークンを使って要求する場合は、フォーム ダイジェストを渡す必要はありません。You don't have to pass the form digest if you're making GET requests, or making requests using a validated OAuth token.

SharePoint サーバー オブジェクト モデルを使ってサイト構造内を移動する場合は、SPWeb.ParentWebSPWeb.Webs のプロパティを使って、親サイトと子サイトを表すオブジェクトにアクセスします。When you navigate your site structure using the SharePoint server object model, you use the SPWeb.ParentWeb and SPWeb.Webs properties to access objects that represent parent and child sites.

対応する REST リソース (web/parentwebweb/webs) は、サイトを表すオブジェクトを返しません。The corresponding REST resources—web/parentweb and web/webs—don't return objects that represent sites. これは、REST サービスが OData の基準に準拠しており、完全なサイトの表現を返すとこれらの要求が非効率的になるためです。This is because the REST service conforms to OData standards, and returning complete site representations would make such requests inefficient. 代わりに、サイトのスカラー プロパティを含む WebInfo オブジェクトを返します。ただし、コレクションやフィールド コレクションなどの関連するエンティティ セットは含まれません。Instead, they return a WebInfo object that contains the site's scalar properties, but without related entity sets such as like collections or field collections.

特定の親サイトまたは子サイトに移動するには、ID または Title のプロパティを使用して、そのサイトへの適切な REST URL を構築します。To navigate to a specific parent or child site, construct the appropriate REST URL to that site by using the Id or Title property. そこからサイトの関連するエンティティ セットにアクセスできます。From there, you can access that site's related entity sets.

SharePoint REST サービスは、URL の構築による、サイトのフォルダー階層の走査をサポートしていません。The SharePoint REST service does not support traversing the folder hierarchy of a site through the URL construction. 代わりに、REST で Web.GetFolderByServerRelativeUrl メソッドに相当するものを使用します。Instead, use the REST equivalent of the Web.GetFolderByServerRelativeUrl method. 次に例を示します。For example:

REST サービスではサポートされていない移動:Navigation not supported through the REST service:

/_vti_bin/client.svc/web/lists/SharedDocuments/folder1/stuff/things/Recycle

REST サービスでサポートされている移動:Navigation that is supported by the REST service:

/_vti_bin/client.svc/web/GetFolderByServerRelativeUrl('SharedDocuments/folder1/stuff/things')/Recycle

SPContextWebInformation オブジェクトのプロパティSPContextWebInformation object properties

SPContextWebInformation プロパティSPContextWebInformation Property 説明Description
webFullUrlwebFullUrl 最も近いサイトのサーバー相対 URL を取得します。Gets the server-relative URL of the nearest site.
siteFullUrlsiteFullUrl サイトが含まれているサイト コレクションのルートのサーバー相対 URL を取得します。Gets the server-relative URL of the root of the site collection that the site is contained within.
一番近い Web サイトがサイト コレクションのルートの場合、webFullUrl プロパティの値は siteFullUrl プロパティの値と等しくなります。If the nearest web is the root of a site collection, the value of the webFullUrl property is equal to the siteFullUrl property.
formDigestValueformDigestValue サーバーの要求をダイジェストから取得します。Gets the server's request form digest.
LibraryVersionLibraryVersion REST ライブラリの現在のバージョンを取得します。Gets the current version of the REST library.
SupportedSchemaVersionsSupportedSchemaVersions サポートされている REST/CSOM ライブラリのスキーマのバージョンを取得します。Gets the versions of the schema of the REST/CSOM library that are supported.

WebInfo オブジェクトWebInfo object

WebInfo プロパティWebInfo property 説明Description
CreatedCreated サイトが作成された日時を特定する値を取得します。Gets a value that specifies when the site was created.
DescriptionDescription サイトの説明を取得または設定します。Gets or sets the description for the site.
IdId サイト識別子を特定する値を取得します。Gets a value that specifies the site identifier.
LanguageLanguage サイトで使用されている言語のロケール ID (LCID) を特定する値を取得します。Gets a value that specifies the locale ID (LCID) for the language that is used on the site.
LastItemModifiedDateLastItemModifiedDate サイトでアイテムが最後に更新された日時を特定する値を取得します。Gets a value that specifies when an item was last modified on the site.
TitleTitle サイトのタイトルを取得または設定します。Gets or sets the title for the site.
WebTemplateIdWebTemplateId サイト テンプレートの ID を取得します。Gets the identifier of the site template.

関連項目See also