web-dev-qa-db-ja.com

REST APiは、SharePointドキュメントライブラリの特定のフォルダーで常に取得します

REST APIを使用して、「ページ」と呼ばれるSharePointドキュメントライブラリ内の特定のフォルダーにアイテムを取得したい

ドキュメントライブラリ内のすべてのアイテムを取得できる以下のRESTAPIを使用しました
https:// spsite/_api/web/lists/getByTitle ( 'Pages')/ items

しかし、SharePointドキュメントライブラリ内の特定のフォルダーで常に取得できるREST apiは見つかりませんでした

6
Laleh

特定のフォルダーからアイテムを返すために使用できるオプションは少なくとも2つあります。

1)/_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>')エンドポイントを使用する

次の例では、特定のフォルダーからすべてのファイルと関連するリストアイテムを返します。

/_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>')/files?$expand=ListItemAllFields

2)CAMLクエリの FolderServerRelativeUrl property を使用する

function getListItems(webUrl,listTitle, queryText,folderUrl) 
{
    var viewXml = '<View><Query>' + queryText + '</Query></View>';
    var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/getitems"; 
    var queryPayload = {  
               'query' : {
                      '__metadata': { 'type': 'SP.CamlQuery' }, 
                      'ViewXml' : viewXml,
                      "FolderServerRelativeUrl": folderUrl 
               }
    };

    return $.ajax({
           url: url,
           method: "POST",
           data: JSON.stringify(queryPayload),
           headers: {
              "X-RequestDigest": $("#__REQUESTDIGEST").val(),
              "Accept": "application/json; odata=verbose",
              "content-type": "application/json; odata=verbose"
           }
     });
}

使用法

getListItems(_spPageContextInfo.webAbsoluteUrl,'Pages', '', '/Pages/Archive')
.then(function(data)
{
     var items = data.d.results;
     for(var i = 0; i < items.length;i++) {
         console.log(items[i].Title);
     }    
})
.fail(function(error){
    console.log(JSON.stringify(error));
});
8

SharePoint2013を使用して特定のフォルダーからファイルにアクセスできますREST API。

終点 :

http://<site url>/_api/web/getfolderbyserverrelativeurl('/<folder name>')/files

このURLは、指定されたフォルダーの下(1レベル下のみ)にあるファイルのみを返します。

参照:

  1. https://msdn.Microsoft.com/en-us/library/office/dn450841.aspx
  2. https://msdn.Microsoft.com/en-us/library/office/dn292553.aspx
  3. SharePoint REST API getFolderByServerRelativeUrlは何も返しません
1
Rohit Waghela

「フィルター」を指定するには、CAMLクエリを使用する必要があります

このCAMLクエリでは、フィールド:FileDirRefを使用でき、値にはフォルダーのserverRelativeURLを使用できます。

これは、REST API: SharePointでのCAMLの使用REST API )を使用してCAMLクエリを実行する方法の例です。

1
Nico