我对SharePoint SPFx和Rest API比较陌生。我正在尝试使用Rest API从SharePoint联机列表中选择一个项目。需要选中此项目,并检查属性是否包含字符串。此属性是一个URL,字符串将是一个必须包含在url中的特定单词。此数据将在SharePoint Online的自定义Web部件中使用。这是我当前正在使用的API:https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({string: word},{property: url})
。
当我尝试在工作台({tenant} / _ layouts / 15 / workbench.aspx)中运行自定义Web部件时,Web部件正确加载,但是API调用出现以下错误: 代码:“-1,Microsoft.SharePoint.SPException” 消息:“不支持函数运算符substringof或使用无效。”
我猜我的语法不正确,但是我似乎无法弄清楚我在做什么错。
我已尝试按照我在互联网上找到的示例更改API。我已经尝试过的这些变体: //切换字符串和属性的位置
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({property},{string})
///在末尾添加eq真
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({string},{property}) __eq true__
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({property},{string}) __eq true__
///使用$ substringof()代替$ filter = substringof()
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$ __substringof__({property},{string})
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$ __substringof__({string},{property})
///使用$ filter = contains()代替$ filter = substringof()
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=__contains__({property},{string})
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=__contains__({string},{property})
当我在浏览器中检查它时,第一个API起作用,并且它返回具有选定属性的预期项目。因此,我猜测它与我在工作台/ SharePoint Online中使用它有关。
这是在浏览器中使用第一个API时获得的XML:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:georss="http://www.georss.org/georss"
xmlns:gml="http://www.opengis.net/gml"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xml:base="https://{tentant}/_api/">
<id>{guid}</id>
<title />
<updated>2019-09-23T09:51:02Z</updated>
<entry m:etag=""26"">
<id>{guid}</id>
<category term="SP.Data.CustomersListItem"
scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit"
href="Web/Lists(guid'a8c98000-4c6a-43ed-b09a-ba95eb43b15f')/Items(53)" />
<title />
<updated>2019-09-23T09:51:02Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
{the requested properties in the select}
</m:properties>
</content>
</entry>
</feed>
我想获得相同的XML输出,以便可以使用属性填充自定义Web部件中的字段。但是很明显我做错了。 SharePoint Online不支持substringof()或contains()吗? 我有语法错误吗?换句话说:我该如何工作?