OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (ODATA-666) Define Deep Update and Deep Upsert operations


     [ https://issues.oasis-open.org/browse/ODATA-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gerald Krause updated ODATA-666:
--------------------------------

    Proposal: 
Document changes:
part1-protocol
 
In section 11.4.3, replace para #7, change first sentence "The entity MAY contain related entities as inline content.", and add three sub-sections:
 
11.4.3.1 Creating and Updating Related Entities When Updating an Entity
The request to update an entity MAY contain related entities as inline content in the request body. A related entity is created (link to 11.4.2) or updated (link to 11.4.3) depending on whether the entity key is new or already exists. The service MUST NOT treat an update request for related entities with an odata.etag annotation as an insert.
 
Upon failure of the operation, the service MUST NOT modify any of the entities in the request in order to prevent a partial update.
 
11.4.3.2 Unlinking Related Entities When Updating an Entity
To remove a link from the entity to be updated to a related entity in a single request, the client includes a deleted link representation (as introduced for delta responses (link to 10.18)) for it in the request body, using the appropriate inline representations.
Upon failure of the operation, the service MUST NOT modify any of the entities in the request in order to prevent a partial update.
 
11.4.3.3 Deleting Related Entities When Updating an Entity
To remove a link from the entity to be updated to a related entity in a single request, the client includes a deleted entity representation (as introduced for delta responses (link to 10.18)) for it in the request body, using the appropriate inline representations.
Upon failure of the operation, the service MUST NOT modify any of the entities in the request in order to prevent a partial update.
 
 
json-format

In section 8.4 Deep Inserts: remove second sentence.
In section 8.5 Bind Operations: Change second sentence: "A bind operation is encoded either as a property annotation odata.bind on the navigation property it belongs to or the property value is an entity reference. Either way, both have a single value for singleton navigation properties or an array of values for collection navigation properties."
 
Add section 8.5 Deep Update (shift all subsequent sections)
When updating an entity with a PATCH or PUT request, the request body MAY contain related entities specified using the same representation as for an expanded navigation property, and deleted entities (link to 14.2), and deleted links (link to 14.3)

atom-format
 
In section 8.4 Deep Inserts: remove second sentence.
Add section 8.5 Deep Update (shift all subsequent sections)
When updating an entity with a PATCH or PUT request, the request body MAY contain related entities specified using the same representation as for an expanded navigation property, deleted entities (link to 14.2), and deleted links (link to 14.3)



  was:See description


> Define Deep Update and Deep Upsert operations
> ---------------------------------------------
>
>                 Key: ODATA-666
>                 URL: https://issues.oasis-open.org/browse/ODATA-666
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Improvement
>          Components: Implementing OData, OData ATOM Format, OData JSON Format, OData Protocol
>    Affects Versions: V4.0_OS
>         Environment: Set Operations
>            Reporter: Ralf Handl
>            Assignee: Ralf Handl
>              Labels: AdoptionBlocker, Usability
>             Fix For: V4.01_WD01
>
>
> Similar to Deep Insert allow including nested entities that may already exist, in which case they are updated.
> Also allow nested "tombstones" to remove entities.
> Allow entity references to just create relations as an alternative to odata.bind (in the long run: retire odata.bind and use references everywhere).
> Use odata.etag annotation for conditional update of nested entities.



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]