2

我正在调用带有扩展的 Crm Web Api 查询:

https://something.crm.dynamics.com/api/data/v8.2/systemusers(F437A25E-8D81-E511-80E1-3863BB367DC0)?$select=systemuserid&$expand=new_relatedemployee($select=new_lalicense,new_lalicenseexpiration)

在启用缓存的情况下第一次从 Chrome 调用时会给出有效的 200 响应。再次调用会给出 304 Not Modified 响应。到目前为止,一切都很好。但是如果我new_relatedemployee在展开中更新实体的属性,我仍然会得到 304 响应,并且展开的属性是旧的,而不是当前值。更新源 SystemUser 实体可清除 304 问题,并检索新值。

所以基本上只为被查询的主要实体返回 304 响应,而不是为扩展实体返回。我希望两者都应该被检查。

有没有办法从客户端强制非缓存版本?

4

1 回答 1

2

我认为这是一个已知的限制。您可以尝试此查询作为解决方法

/systemusers?$filter=systemuserid+eq+F437A25E-8D81-E511-80E1-3863BB367DC0&$select=systemuserid&$expand=new_relatedemployee($select=new_lalicense,new_lalicenseexpiration)

实体集查询响应不包含Etag标头。所以浏览器在后续请求中不会有任何东西可以放入If-None-Match请求标头中。

于 2017-07-11T17:20:54.143 回答