我试图计算不同对象的记录数。 / $ count过滤的API的响应不一致地给出了错误的响应。 我指的是this文档链接以获取使用说明。
请求网址:获取https://outlook.office.com/api/v2.0/me/Events/ $ count
回应:-1
为了验证上面提到的响应是否合法,我尝试使用跳过过滤器来获取所有事件以识别存在的实际记录数。 在请求URL之后的某些尝试之后,URL给了我最终计数:
请求网址:获取https://outlook.office.com/api/v2.0/me/events/?$ skip = 159
Response:
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events",
"value": [
{
"Id": "AAMkADMzYzIxNTBjLWUyMWUtNDgzYi04NTEwLTc5YTkzMWI5MmE4MgBGAAAAAABjOnbtK9ZkTIjwInd5bfYcBwDe_ScfFfAUQaKHRwnzV1lBAAAAAAENAADe_ScfFfAUQaKHRwnzV1lBAACs2ojfAAA=",
"CreatedDateTime": "2016-11-28T11:09:03.8359488Z",
"LastModifiedDateTime": "2017-02-21T08:04:48.8262751Z"
}
]
}
这意味着在跳过159条记录后,我在经过身份验证的帐户中出现了第160条记录,但$ count过滤后的API并未给我一个有效的回复。
我尝试用两个不同的帐户测试这个场景,我也注意到/ message API的这个异常。对消息/ $ count的HTTP GET调用给了我1563,而在尝试使用跳过过滤器后,我发现总计数为1396
我想知道$ count是否会返回合法回复?如果是,那么解释这个异常如果没有,那么我们应该期望对不一致的反应吗?
答案 0 :(得分:1)
要计算事件数,您需要指定开始时间和结束时间。这是我使用的:
https://outlook.office.com/api/v2.0/me/calendarview/$count?startDateTime=2017-05-01T00:00:00Z&endDateTime=2017-05-31T23:59:59Z
如果您未指定日期,则会收到400,并显示以下错误消息:
{"error":{"code":"ErrorInvalidParameter","message":"This request requires a time window specified by the query string parameters StartDateTime and EndDateTime."}}