REST APIを使用して、「ページ」と呼ばれるSharePointドキュメントライブラリ内の特定のフォルダーにアイテムを取得したい
ドキュメントライブラリ内のすべてのアイテムを取得できる以下のRESTAPIを使用しました
https:// spsite/_api/web/lists/getByTitle ( 'Pages')/ items
しかし、SharePointドキュメントライブラリ内の特定のフォルダーで常に取得できるREST apiは見つかりませんでした
特定のフォルダーからアイテムを返すために使用できるオプションは少なくとも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));
});
SharePoint2013を使用して特定のフォルダーからファイルにアクセスできますREST API。
終点 :
http://<site url>/_api/web/getfolderbyserverrelativeurl('/<folder name>')/files
このURLは、指定されたフォルダーの下(1レベル下のみ)にあるファイルのみを返します。
参照:
「フィルター」を指定するには、CAMLクエリを使用する必要があります
このCAMLクエリでは、フィールド:FileDirRefを使用でき、値にはフォルダーのserverRelativeURLを使用できます。
これは、REST API: SharePointでのCAMLの使用REST API )を使用してCAMLクエリを実行する方法の例です。