Полезная нагрузка JSON-запроса со свойствами навигации по коллекции? - PullRequest
0 голосов
/ 27 января 2012

Поддерживает ли протокол OData JSON (любая версия) полезную нагрузку запроса, которая содержит один объект (то есть не пакетный), который содержит свойство навигации, где свойство навигации содержит набор отложенных записей?

Я изучил спецификацию, и похоже, что она не определена или, по крайней мере, не определена для версий 2 и 3 ...

2.2.6.3.2 Набор объектов (в виде массива JSON) «Синтаксис JSON-представления коллекции сущностей определяется грамматикой перечислены в этом разделе. Правило грамматики "entitySetInJson" определяет Версия 1.0 JSON представление коллекции объектов, которые могут использоваться в запросах и ответах. Правило грамматики «entitySetInJson2» определяет версию 2.0 и версию 3.0 JSON представление коллекции сущностей только для ответных полезных нагрузок. Нет изменений между версией 1.0 и версией 2.0 или форматы версии 3.0 для использования в полезных нагрузках запроса, которые определяются эта спецификация. "

и

2.2.6.3.10 Ссылки Синтаксис JSON-представления коллекции ссылок: определяется грамматикой, перечисленной в этом разделе. Правило грамматики "linkCollJson" определяет представление JSON версии 1.0 коллекция ссылок, которые можно использовать как в запросе, так и в ответе Полезная нагрузка. Правило грамматики "linkCollJson2" определяет версию 2.0 и версия 3.0 JSON представление коллекции ссылок для ответа только полезные нагрузки. Эта спецификация не определяет версию 2.0 или версия 3.0 JSON представление коллекции ссылок для использования в запрос полезных нагрузок.

Для меня это говорит о том, что в OData V1 можно загрузить объект со значениями URI, приписанными к свойствам навигации его коллекции, а в V2 и V3 это невозможно. Сериализация ATOM не вызывает этого различия.

Правильно ли мое понимание или я что-то упустил. И может ли кто-нибудь предоставить мне некоторую предысторию по причине изменений, описанных выше?

Большое спасибо заранее.

Эрик

1 Ответ

0 голосов
/ 27 января 2012

Спецификация немного неясна на данный момент, но что это означает, когда говорится, что версии 2.0 и 3.0 не указаны для полезных нагрузок запроса, это означает, что в полезных нагрузках запроса следует использовать версию полезной нагрузки версии 1.0, поскольку новых версий нет определены. Можно вставить новый объект с расширенным свойством навигации, который содержит коллекцию объектов. Например, вы можете вставить новую категорию вместе с 5 продуктами, которые относятся к этой категории. Отложенные ссылки также возможны, и для этого необходимо связать новую сущность с существующими сущностями, на которые ссылаются эти ссылки. Обратите внимание, что службы данных WCF в настоящее время поддерживают это только при вставках (POST), но не поддерживают при обновлениях (PUT / MERGE /...).

...