我们调用了Microsoft Graph的组和用户终结点,他们需要200毫秒以上才能完成。进行呼叫的Web应用程序作为应用程序服务托管在Azure(美国中南部)中。对于某些用户,我们需要针对每个用户请求进行多次调用,这大大降低了我们的应用程序的速度。我已经查看了MS Graph的最佳实践和已知问题,但没有找到解决方法。缓存是加快速度的唯一方法吗?
我们已审查的文档:
https://docs.microsoft.com/en-us/graph/best-practices-concept
https://docs.microsoft.com/en-us/graph/known-issues
我们看到此延迟的端点是:
https://graph.microsoft.com/v1.0/groups
https://graph.microsoft.com/v1.0/users
我们已经看到HttpClient REST调用和SDK的延迟相同。如果我们呼叫单个用户或所有用户,则得到相同的延迟。
使用HttpClient在Azure数据中心内花费200毫秒以上的代码:
var accessToken = await GetBearerAccessToken();
var url = "https://graph.microsoft.com/v1.0/users/" + id;
using (var client = new HttpClient())
{
using (var request = new HttpRequestMessage(HttpMethod.Get, url))
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
using (var response = await client.SendAsync(request))
{
if (response.StatusCode == HttpStatusCode.OK)
{
var json = await response.Content.ReadAsStringAsync();
result = JsonConvert.DeserializeObject<Salesperson>(json);
}
}
}
}