使用 Sharepoint REST 查找文件列表 API

Find a list of Files using Sharepoint REST API

这似乎是一个冷漠的问题,我无法在包括这里在内的任何地方找到答案,所以我会再试一次,看看是否有人有解决方案。我有一个 SharePoint 2013 实例,我使用 REST API 进行内容搜索,并使用 return 到我的 React 前端进行显示。这很好用。但是,当我只需要在整个站点中搜索特定文档列表而不仅仅是在目录或特定列表中时,我现在遇到了一个问题。我可以使用 /_api/search/query?queryText="" 进行内容搜索,但我想构建此 API 端点的查询文本以仅搜索其中的文档我提供的清单。

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

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

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

有没有办法将查询字符串格式化为 return 仅特定文件?

谢谢。

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

此外,您还需要运算符才能使用过滤器

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"[=51过滤=] 此处示例:

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')

过滤器"Contains"(子字符串)

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

过滤器"Search with Related key (ex1 in this case)": (substringof)

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

感谢阅读!

我只用:

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

它包括 Url、名称和 "childrenCount" 以过滤文件夹。

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