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 заголовок запроса в последующих запросах.

Другие вопросы по тегам