我正在开发一个连接到Microsoft Graph API的Node.js应用程序。
通常情况下,我会返回429
状态代码,在error documentation中将其描述为“Too Many Requests”。
有时返回的信息是:
TooManyRequests。客户端应用程序已被限制,并且在经过一段时间之后不应尝试重复请求。
其他时候,它会返回:
“TooManyRequests。服务器正忙。请稍后再试。”
不幸的是,它没有在标题中返回Retry-After
字段,即使他们best practices声称它应该这样做。
这完全处于开发阶段,而且我没有多次使用该服务,因为它一直在调试期间。我意识到微软经常改变它的运作方式。我发现很难围绕甚至不提供Retry-After
字段的服务开发应用程序,并且似乎存在很多问题(我使用v1.0
端点)。
当我等待5分钟时(正如我所看到的那样推荐),该服务仍然出错。以下是返回响应的示例:
{
"error": {
"code": "TooManyRequests",
"message": "The server is busy. Please try again later.",
"innerError": {
"request-id": "d963bb00-6bdf-4d6b-87f9-973ef00de211",
"date": "2017-08-31T23:09:32"
}
}
}
这可能与正在进行的操作有关吗?
我正在更新A2:L3533
的范围。它们都是文本值。我想知道这是否会影响节流。我没有找到任何关于使用“较小”操作集的指导。
答案 0 :(得分:0)
如果没有看到您的代码,很难准确诊断出发生了什么。也就是说,你在这里的范围是巨大的,几乎肯定会导致问题。
大范围意味着对于单个API调用来说,大小的范围太大。许多因素(如单元格数,值,numberFormat和范围中包含的公式)可能会使响应变得如此之大,以至于它变得不适合API交互。 API最有效地返回或写入所请求的数据。但是,由于资源利用率很高,所涉及的大尺寸可能会导致API错误。
为避免这种情况,我们建议您在多个较小范围内读取或写入大范围。