我正在尝试使用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请求,但不支持。
答案 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
}