我有一个使用Microsoft Graph API的应用程序,我正在尝试检查API的用法和更多信息,例如配额限制,计费等。我如何获得这些信息?
答案 0 :(得分:4)
计算Microsoft Graph的配额限制非常复杂。例如,返回用户列表的单个查询可能需要X资源。对租户中的应用程序的另一个查询(假设您拥有与用户相同数量的应用程序)可能需要2X资源,因为在后台,AAD正在从多个位置收集信息以表示应用程序。
这只是一个简单的例子,但是需要注意的是,没有简单的方法可以从Microsoft Graph等服务中获得明确定义的“配额”限制。更不用说配额和限制可以根据所访问的租户(1K用户租户与100K用户租户),您正在访问的API(Outlook可能具有与SharePoint不同的限制行为等)动态地发生一些动态变化......等等/ p>
相反,您应该在应用程序中构建一旦达到此限制就能处理返回给您的明确错误的能力,并使用建议的时间范围和方法重新启动端点。
所有这些都记录在这里:Microsoft Graph throttling guidance
发生限制时会发生什么?
当发生限制时,Microsoft Graph返回HTTP状态代码429(请求太多),并且请求失败。在失败的请求的响应头中返回建议的等待时间。
处理限制的最佳做法
实现错误处理时,请使用HTTP错误代码429来检测限制。失败的响应包括响应头中的Retry-After字段。使用Retry-After延迟来回退请求是从限制中恢复的最快方法,因为Microsoft Graph会在客户端受到限制时继续记录资源使用情况。
等待Retry-After字段中指定的秒数。
重试请求。
- 醇>
如果请求再次因429错误代码而失败,您仍然受到限制。继续使用推荐的Retry-After延迟和 重试请求,直到成功。
您还应该看一下:Microsoft Throttling Pattern