REST APi可以在SharePoint文档库中的特定文件夹中获取所有时间

Lal*_*leh 5 rest sharepoint sharepointdocumentlibrary office365api

我想使用REST API在SharePoint文档库中的特定文件夹中获取名为"Pages"的项目

我使用下面的rest API,我可以获取文档库中的所有项目
https:// spsite/_api/web/lists/getByTitle('Pages')/ items

但我还没有找到REST API,我可以在SharePoint文档库中的特定文件夹中获取

谢谢先进的Laleh

Vad*_*hev 7

至少有两个选项可用于从特定文件夹返回项目:

1)使用/_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>')端点

以下示例返回特定文件夹中的所有文件以及关联的列表项:

/_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>')/files?$expand=ListItemAllFields
Run Code Online (Sandbox Code Playgroud)

2)使用CAML查询的FolderServerRelativeUrl属性

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"
           }
     });
}
Run Code Online (Sandbox Code Playgroud)

用法

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));
});
Run Code Online (Sandbox Code Playgroud)