【问题标题】:Proper syntax for MS GraphAPI filter IN operatorMS GraphAPI 过滤器 IN 运算符的正确语法
【发布时间】:2022-10-19 19:37:50
【问题描述】:

我正在尝试简化 GraphAPI 请求以获取基于 displayName 过滤器的邮件文件夹列表。这似乎适用于eq 运算符,但不适用于in。下面是两个请求,它们应该返回相同的结果。

使用eqhttps://graph.microsoft.com/v1.0/me/mailfolders?$filter=displayName eq 'inbox' or displayName eq 'drafts'

使用inhttps://graph.microsoft.com/v1.0/me/mailfolders?$filter=displayName in ('inbox', 'drafts')

使用in 时出现以下错误:

{
    "error": {
        "code": "ErrorInvalidUrlQueryFilter",
        "message": "The query filter contains one or more invalid nodes.",
        "innerError": {
            "date": "2022-02-16T16:48:51",
            "request-id": "",
            "client-request-id": ""
        }
    }
}

在默认情况下支持 eq 的任何地方,都应该支持我读过的文档。根据我在这里找到的示例,语法应该是正确的:https://learn.microsoft.com/en-us/graph/query-parameters#examples-using-the-filter-query-operator

有人可以阐明问题可能是什么吗?

【问题讨论】:

  • 错误信息表明我认为不支持这种过滤器,所以我搜索了邮件文件夹属性,发现没有关于是否不支持的说明。但是我找到了OData Protocol,发现没有in方法...

标签: microsoft-graph-api outlook-restapi


【解决方案1】:

您的最后一条语句仅适用于目录对象(记录为从 directoryObject 资源继承的资源。 mailFolder 不是其中之一

【讨论】:

  • 我想你可能是对的。该文档对in 运算符的支持并不完全清楚,但在最可能支持eq 的任何地方都支持它的一般规则很可能仅适用于目录对象
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 2021-05-21
  • 1970-01-01
相关资源
最近更新 更多