Microsoft Graph api - отсутствует функция «none» (или вообще отсутствует) для $ filter - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь получить любое сообщение, которое у меня не было специально классифицировано, но нет опции фильтра none для Microsoft Graph.Я попытался инвертировать фильтр any с помощью следующего вызова:

/v1.0/me/messages?$filter=categories/any(c:c ne 'MyCategory')

Однако при этом все равно будут возвращаться элементы, содержащие 'MyCategory'.Есть ли другой способ, с помощью которого я могу получить элементы, для которых эта категория не установлена?(Возврат элементов без установленной категории не является достаточно исключительным).

Я предполагал использовать пользовательские расширения, однако в фильтре для расширений также отсутствует опция none.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

В самом API нет хорошего способа проводить отрицательные сравнения, подобные этому.

Причина, по которой any не работает, заключается в том, что ваш запрос переводится как «включить сообщение, если какая-либо из его категорий не является« MyCategory »».Это будет включать в себя сообщения без категорий (например, null), а также сообщения с любой другой категорией (т. Е. Сообщение с MyCategory и Blue Category будет соответствовать фильтру).

Ваша лучшая ставка - использовать открытые расширения.Это позволяет вам добавлять специфичные для приложения данные в ресурсы Graph, по которым вы можете фильтровать.

0 голосов
/ 15 мая 2019

попробуйте

я не уверен, что это ваш запрос

https://graph.microsoft.com/v1.0/me/messages/?$select=categories

...