Define ContentID annotation for deep inserted entities

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Minor
    • V4.01_WD01
    • Affects Version/s: V4.0_ERRATA02
    • Component/s: Protocol
    • None
    • Hide

      Introduce a new contentID annotation that the client can specify in the nested entities in the request. A server advertises support for the contentID instance annotation through the Capabilities.DeepInsertSupport annotation. Clients can specify the contentID instance annotation in the nested entities in the request. Services that support the contentID instance annotation MUST annotate the corresponding nested entities in the response when the return=representation preference is applied.

      Instance annotation definition:

      <Term Name=”contentID” Type=”Edm.String”>
      <Annotation Term="Core.Description" String=”A unique identifier for nested entities within a request."/>
      </Term>

      Introduce a new capabilities annotation for deep inserts:

      <Term Name="DeepInsertSupport" Type="Capabilities.DeepInsertSupportType" AppliesTo="EntityContainer">
      <Annotation Term="Core.Description" String=”Deep Insert Support for the service"/>
      </Term>

      <ComplexType Name="DeepInsertSupportType">
      <Property Name="Supported" Type="Edm.Boolean" DefaultValue="true">
      <Annotation Term="Core.Description" String="Service supports deep inserts" />
      </Property>
      <Property Name="ContentIDSupported" Type="Edm.Boolean" DefaultValue=”true”>
      <Annotation Term="Core.Description" String="Service supports accepting and returning nested entities annotated with the contentID instance annotation." />
      </Property>
      </ComplexType>

      Show
      Introduce a new contentID annotation that the client can specify in the nested entities in the request. A server advertises support for the contentID instance annotation through the Capabilities.DeepInsertSupport annotation. Clients can specify the contentID instance annotation in the nested entities in the request. Services that support the contentID instance annotation MUST annotate the corresponding nested entities in the response when the return=representation preference is applied. Instance annotation definition: <Term Name=”contentID” Type=”Edm.String”> <Annotation Term="Core.Description" String=”A unique identifier for nested entities within a request."/> </Term> Introduce a new capabilities annotation for deep inserts: <Term Name="DeepInsertSupport" Type="Capabilities.DeepInsertSupportType" AppliesTo="EntityContainer"> <Annotation Term="Core.Description" String=”Deep Insert Support for the service"/> </Term> <ComplexType Name="DeepInsertSupportType"> <Property Name="Supported" Type="Edm.Boolean" DefaultValue="true"> <Annotation Term="Core.Description" String="Service supports deep inserts" /> </Property> <Property Name="ContentIDSupported" Type="Edm.Boolean" DefaultValue=”true”> <Annotation Term="Core.Description" String="Service supports accepting and returning nested entities annotated with the contentID instance annotation." /> </Property> </ComplexType>
    • Show
      https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/4.01%20spec/vocabularies/Org.OData.Core.V1.xml https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/4.01%20spec/vocabularies/Org.OData.Capabilities.V1.xml https://www.oasis-open.org/apps/org/workgroup/odata/download.php/59028/odata-v4.01-wd01-part1-protocol.docx

      There is no defined order for expanded nested entities in the response to a request (POST, PUT or PATCH) that creates new entities by a deep insert.

            Assignee:
            Unassigned
            Reporter:
            matt.borges
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: