MS Graph是否使用ETag标头处理缓存?

时间:2019-10-29 20:23:52

标签: microsoft-graph

我正在尝试使用ms-graph中给定的ETag缓存检索到的照片。这里有一个命令:

http 'https://graph.microsoft.com/v1.0/users/[user-mail]/photo/$value' Authorization:"Bearer [token]" If-None-Match:[prev_ETag] -v

很遗憾,我看到304 Not Modified带有二进制数据的响应,而不是200 OK。有某种方法可以使用ETag令牌来防止重新获取已经下载的照片吗?我的目标是减少ms-graph的负载。是否有任何Microsoft指南如何从其API缓存数据?我尝试使用HEAD http请求,但不支持。

1 个答案:

答案 0 :(得分:1)

是的,您可以基于ETag缓存照片。拿到照片后,您应该得到一个etag响应标题。您可以通过获取照片的元数据(而不是照片本身)来检查照片是否已更改:

GET /users/[user-mail]/photo

这将返回有关当前照片的一些信息,包括@odata.mediaEtag属性中的ETag。

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('e6c10dc8-5218-46f7-a0c1-59026b45b0fe')/photo/$entity",
  "@odata.mediaContentType": "image/jpeg",
  "@odata.mediaEtag": "\"6A0C23F3\"",
  "id": "240X240",
  "height": 240,
  "width": 240
}