使用Sharepoint REST API查找文件列表

时间:2019-01-07 18:50:05

标签: sharepoint-2013 sharepoint-rest-api

这似乎是一个超然的问题,我无法在这里找到任何地方,因此,我将再次尝试查看某人是否有解决方案。我有一个SharePoint 2013实例,该实例使用REST API进行内容搜索并返回到我的React前端进行显示。这很好。但是,当我只需要搜索整个站点中特定文档的列表而不仅仅是目录或特定列表时,就会遇到问题。我可以使用/ _api / search / query?queryText =“”进行内容搜索,但是我想构造此API端点的querytext以仅在我提供的列表中搜索文档。

例如,如果我要查找三个文档:

  1. Foo.txt
  2. Bar.doc
  3. Foobar.pdf

我只希望这些文档和相应的数据(例如我使用搜索api获得的RedirectEmbedURL等)而不是/ _api / web / lists / getByTitle方法。

是否可以格式化查询字符串以仅返回特定文件?

谢谢。

2 个答案:

答案 0 :(得分:0)

要检索列表,您需要知道站点路径和库名称。

您还需要操作员使用过滤器

Operators

检索列表中的所有文件: https://// __ api / Web / Lists / GetByTitle('')/ Items?$ expand = File

示例:

https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File

以下是一些过滤器示例

按名称过滤,您需要展开“ FieldValuesAsText”并按属性“ FileLeafRef”进行过滤 此处的示例:

https://[site]/web/Lists/GetByTitle('[library_name]')/Items?$filter=substringof('[TEXT_TO_SEARCH]',Title) or substringof('[TEXT_TO_SEARCH]',FileLeafRef)&$expand=File,FieldValuesAsText

我也在按标题过滤,因为我不知道用户是否需要标题或带有扩展名的名称。

过滤器开始于

https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File&$filter=startswith(Title,'Foo')

过滤器“包含”(substringof)

https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File&$filter=substringof('T15', Title)

过滤“使用相关关键字搜索(在这种情况下为ex1)” :( substringof)

https://domain-example.com/sites/site1/site2/etc/_api/Web/lists/GetByTitle('listtitle')/Items?$expand=FieldValuesAsText&$filter=substringof('BES10GHC10BB001', ex1)

感谢阅读!

答案 1 :(得分:0)

我只使用:

https://<domain>/sites/<list-title>/_api/files

它包含用于过滤文件夹的网址,名称和“ childrenCount”。

您可以在请求中使用逻辑进行过滤。