Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-1423

Check uniform handling of entities reached via navigation in responses

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.0_CS02
    • Fix Version/s: V4.0_CSD04
    • Component/s: Data Aggregation
    • Labels:
      None
    • Environment:

      Applied

    • Proposal:
      Hide

      1. Rephrase wording in section 3 to have clear definitions referenced throughout the text:

      • input set for the input of a transformation
      • output set for the result of a transformation
      • the final result of the $apply option is the output set of the last transformation

      2. Add general remark for the whole $apply section 3: Navigation properties in the final result set are carried over to the final result of the $apply option. Navigation properties in this final result can be further expanded using $expand.

      3. Section 3.1 and 3.12: Accompany "mental bridge" by more normative text.

      The necessary text changes are provided in this file, marked with the ID of this issue as comments.

      Show
      1. Rephrase wording in section 3 to have clear definitions referenced throughout the text: input set for the input of a transformation output set for the result of a transformation the final result of the $apply option is the output set of the last transformation 2. Add general remark for the whole $apply section 3: Navigation properties in the final result set are carried over to the final result of the $apply option. Navigation properties in this final result can be further expanded using $expand. 3. Section 3.1 and 3.12: Accompany "mental bridge" by more normative text. The necessary text changes are provided in this file , marked with the ID of this issue as comments.

      Description

      When a transformation adds entities reached via navigation to its result, the request must specifically ask to expand them in order to have them appear in the response.

      Example from ODATA-1409 that triggered the discussion: The join transformation in

      GET ~/Products?$apply=join(Sales as Sale) creates a Sale dynamic property with Sales instances as values which are entities. Another $expand=Sale is required to include these entities in the response.

      Cross-check this with other cases such that all behave in the same way:

      • transformation nest that can be used to add related entities to the input set
      • transformation groupby applied to single-valued navigation properties (see ODATA-971)
      • transformation aggregate on related entities (see ODATA-945)

        Attachments

          Activity

          Hide
          heiko.theissen Heiko Theissen added a comment -

          The nest transformation is defined in such a way that it already carries out the expansion. Otherwise, example 29

          GET ~/Customers?$apply=nest(Sales,filter(Amount gt 3) as FilteredSales)
          

          would be invalid.

          Show
          heiko.theissen Heiko Theissen added a comment - The nest transformation is defined in such a way that it already carries out the expansion. Otherwise, example 29 GET ~/Customers?$apply=nest(Sales,filter(Amount gt 3) as FilteredSales) would be invalid.
          Hide
          gerald.krause1 Gerald Krause added a comment -

          2021-03-18

          Show
          gerald.krause1 Gerald Krause added a comment - 2021-03-18

            People

            • Assignee:
              gerald.krause1 Gerald Krause
              Reporter:
              gerald.krause1 Gerald Krause
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: