Microsoft Graph API 批量限制

Ste*_*han 8 microsoft-graph-api

这个问题是关于JSON批处理的两个问题

  1. 我发现批处理限制是 15 而不是提到的 20,为什么JSON Batching页面上没有提到限制对我来说是一个问题。如果我合并 15 个请求,它们都会成功,没问题。如果我执行 16 到 20 个请求,它们会随机开始失败。我是不是做错了什么?我没有使用图形客户端,因为它很长时间不支持批处理。我还创建了一个关于它的github 问题,但由于某种原因它被关闭了.....
  2. 我如何建议提高限额?如果可以将限制提高到 50,这将非常有用(限制它们应该在相同的上下文中,就像您可以从单个用户日历中添加/删除 50 个项目一样。)

我尝试批处理的请求是这些请求的组合:

  • 从用户日历中删除项目
  • 将项目添加到用户日历

似乎有些租户(这是一个多租户应用程序)的限制为 4,我们的租户限制为 15,这似乎是平均值。

如果我检查提到的 20,我会收到 HTTP 400 错误请求异常。但是具有 15 到 20 个“子请求”组合的批处理请求会产生 HTTP 200 Ok 响应,其中一些 json 描述子请求的状态。那里显示429状态。

{
    "id": "04",
    "status": 204,
    "headers": {
        "Cache-Control": "private"
    },
    "body": null
}
Run Code Online (Sandbox Code Playgroud)

对比

{
    "id": "12",
    "status": 429,
    "headers": {
        "Retry-After": "1",
        "Cache-Control": "private"
    },
    "body": {
        "error": {
            "code": "ApplicationThrottled",
            "message": "Application is over its MailboxConcurrency limit.",
            "innerError": {
                "request-id": "b919dc35-78c1-407e-8f4a-0f44f03ac707",
                "date": "2019-10-08T20:03:44"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

@mag382 在封闭的 github 问题上对此发表了很好的评论。

这肯定仍然是一个问题,这个问题不应该被标记为关闭。批处理端点不会返回包含 16-20 个请求的 BadRequest,但响应将包含 ApplicationThrottled 错误。API 中较低的部分限制了邮箱访问的并发性。要么需要增加该限制以匹配批次的 20 个请求限制,要么需要将批次文档和验证减少到 15 个。

Bis*_*hop 0

该文档提到 Outlook 端点仅限于Outlook