Crm Web Api неверный ответ 304 для расширения сущности
Я вызываю запрос 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 ответа возвращаются только для основного запрашиваемого объекта, а не для расширенного объекта. Я ожидаю, что оба должны быть проверены.
Есть ли способ заставить не кэшированную версию с клиента?
1 ответ
Я думаю, что это известное ограничение. Вы можете попробовать этот запрос как обходной путь
/systemusers?$filter=systemuserid+eq+F437A25E-8D81-E511-80E1-3863BB367DC0&$select=systemuserid&$expand=new_relatedemployee($select=new_lalicense,new_lalicenseexpiration)
Ответ на запрос набора сущностей не содержит Etag
заголовок. Так что в браузере нечего будет вставлять If-None-Match
заголовок запроса в последующих запросах.