Я довольно плохо знаком с SharePoint SPFx и Rest API.Я пытаюсь выбрать один элемент из онлайн-списка SharePoint, используя Rest API.Этот элемент должен быть выбран с проверкой, если свойство содержит строку.Это свойство является URL, и строка будет определенным словом, которое должно быть в URL.Эти данные будут использоваться в пользовательской веб-части для SharePoint Online.Это API, который я сейчас использую: https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({string: word},{property: url})
.
Когда я пытаюсь запустить пользовательскую веб-часть в рабочей среде ({tenant} / _ layouts / 15 / workbench.aspx), веб-часть загружаетсяправильно, но я получаю следующую ошибку для вызова API: код: «-1, Microsoft.SharePoint.SPException» сообщение: «Подстрока оператора функции не поддерживается или использование недопустимо.».
Я предполагаю, что мой синтаксис неправильный, но я не могу понять, что я делаю неправильно.
Я пытался изменить мой API, следуя примерам, найденным в Интернете.Эти варианты, которые я уже пробовал: // поменять местами строку и свойство
https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({property},{string})
// добавление eq true в конце
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.
Это XML, который я получаю при использовании первого API в браузере:
<?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, чтобы я мог использовать свойства для заполнения полей вмоя пользовательская веб-часть.Но явно я что-то не так делаю.Подстрока () или содержит () не поддерживается SharePoint Online?У меня есть синтаксическая ошибка?Другими словами: как мне заставить это работать?