REST APi, чтобы всегда находиться в определенной папке в библиотеке документов SharePoint

Я хотел бы получить элементы в определенной папке в библиотеке документов SharePoint под названием «Страницы» с помощью REST API.

Я использовал приведенный ниже rest API, с помощью которого я могу получить все элементы в библиотеке документов
https://spsite/_api/web/lists/getByTitle ('Страницы') / items

Но я не нашел REST api, который я могу всегда получать в определенной папке внутри библиотеки документов SharePoint.


person Laleh    schedule 28.02.2017    source источник
comment
Что вы имеете в виду под словом «получать все время», не могли бы вы пояснить?   -  person Vadim Gremyachev    schedule 01.03.2017
comment
получить все элементы в определенной папке в библиотеке документов, например, у меня есть библиотека документов с именем Pages в этой библиотеке у меня есть папка с именем Test Я хочу получить все элементы в папке Test   -  person Laleh    schedule 01.03.2017


Ответы (3)


Есть как минимум два варианта возврата элементов из определенной папки:

1) Использование конечной точки /_api/web/getfolderbyserverrelativeurl('<serverrelativefolderurl>')

В следующем примере возвращаются все файлы вместе со связанными элементами списка из определенной папки:

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

2) с использованием свойства FolderServerRelativeUrl CAML запрос

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));
});
person Vadim Gremyachev    schedule 02.03.2017
comment
Ничего себе. Большое спасибо, вы сэкономили мне много времени, я попробовал первый вариант, и он отлично работает :) Я также могу получить метку значения единственного выбора таксономии, которую невозможно получить с помощью _api / web / lists / getByTitle ( 'list name') / items, но, что удивительно, теперь я не могу получить несколько полей выбора таксономии, я получаю нулевое значение по этому URL-адресу REST, вы знаете об этом? - person Laleh; 04.03.2017
comment
У меня есть еще один вопрос, мне также нужно отфильтровать, я использовал _api / web / GetFolderByServerRelativeUrl (‹serverrelativefolderurl›) / files? $ Expand = ListItemAllField $ filter = ACT eq '23', ACT - это имя столбца, которое вернулось под ListItemAllField, но я получаю сообщение об ошибке. Поле или свойство \ ACT \ не существует. , есть ли способ отфильтровать это? - person Laleh; 05.03.2017

Вам нужно использовать запрос CAML, чтобы указать «фильтр»

В этом запросе CAML вы можете использовать поле: FileDirRef и для значения serverRelativeURL вашей папки.

Это пример того, как выполнить запрос CAML с использованием REST API: Использование CAML с SharePoint REST API

person Nico    schedule 01.03.2017

Вы можете получить доступ к файлам из определенных папок с помощью REST API SharePoint 2013.

КОНЕЧНАЯ Точка:

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

Этот URL-адрес вернет только файлы, расположенные ниже (только на один уровень ниже) указанной папки.

Использованная литература :

  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 ничего не возвращает
person Rohit Waghela    schedule 02.03.2017