Search code examples
restsharepointoffice365apisharepointdocumentlibrary

REST APi to get all times in specific folder in SharePoint document library


I would like to get items in specific folder inside SharePoint document library called "Pages" with REST API

I used below rest API which I can get all items in document library
https://spsite/_api/web/lists/getByTitle('Pages')/items

But I have not found the REST api which I can get all times in specific folder inside SharePoint document library


Solution

  • There are at least two options available to return items from a specific folder:

    1) Using /_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>') endpoint

    The following example returns all the files along with associated list items from a specific folder:

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

    2) using FolderServerRelativeUrl property of CAML query

    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"
               }
         });
    }
    

    Usage

    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));
    });