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] Commented: (ODATA-523) How do clients construct links from the context url for complex types?

    [ http://tools.oasis-open.org/issues/browse/ODATA-523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34841#action_34841 ] 

Ralf Handl commented on ODATA-523:

The context URL alone does not allow clients to construct navigation links. Instead the client needs
- the request URL used to retrieve the complex type instance
- the name of the navigation property
These two concatenated form the canonical request URL for the navigation target.

  - Request URL for complex instance: http://host/service/Customers(1)/Address
  - Navigation property name :Country 
  - Requeste URL for related entity: http://host/service/Customers(1)/Address/Country

Given just the Address instance and the context URL, there's no way to construct the key predicate part of the new request URL. This information is solely contained in the original request URL, known to the client.

So there's no need to change the context URL pattern, on the contrary: currently it contains the name of the complex type which can be used to determine the navigation properties. In the proposed pattern this is hidden behind several indirections: entity set -> entity type -> property path.

I propose to close this issue without actions.

> How do clients construct links from the context url for complex types?
> ----------------------------------------------------------------------
>                 Key: ODATA-523
>                 URL: http://tools.oasis-open.org/issues/browse/ODATA-523
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: OData Protocol 
>    Affects Versions: V4.0_CS01
>         Environment: [Applied] (see comment)
>            Reporter: Michael Pizzo
>            Assignee: Michael Pizzo
>             Fix For: V4.0_CSD03
> Our current pattern for the context for a single complex types looks like this:
> {context-url}#{type-name}
> And a collection of complex types looks like this:
> {context-url}#Collection({type-name})
> However, in V4 we have add the ability for complex types to have relationships.Since one of the roles of the context is to provide the base for clients to construct links, how does the client compute relationship links using these context urls?
> For example, if I do ~Customers(1)/ns.Address, and Address has navigations to Country, how do represent that?
> Option 1: For complex types/collections of complex types, if there are navigation properties, you have to put the navigation links in the payload.
> Option 2: We modify the context url for single-valued complex properties to include the property path from the entity in the entity set:
> {context-url}/{entity-set}/$entity/{propertyName}
> For collection-valued complex properties and single- or collection-valued primitive properties we keep the current pattern. Collections of complex types MUST include links, as already stated in JSON section 8.1.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


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