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

Access a property of the result of a non-composable function

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: V4.01_ERRATA01
    • Component/s: CSDL JSON, CSDL XML
    • Labels:
      None
    • Proposal:
      Hide

      Step 1: come up with one definition of non/composability, also taking actions into account which are "non-composable" now

      Step 2: complement it with capabilities to express what actually is possible if a function is "composable"

      Show
      Step 1: come up with one definition of non/composability, also taking actions into account which are "non-composable" now Step 2: complement it with capabilities to express what actually is possible if a function is "composable"

      Description

      Must a function be composable to allow access to individual properties of its returned value?

      GET BillingDocument('90000090')/self.GetPDF()/BillingDocOutputDataBinary
      

      The CSDL specification says

      A composable function can be invoked with additional path segments or key predicates appended to the resource path that identifies the composable function, and with system query options as appropriate for the type returned by the composable function.

      and BillingDocOutputDataBinary is an "additional path segment".

      The Protocol specification seems to allow system query options without composability

      If the function is composable, additional path segments may be appended to the URL that identifies the composable function (or function import) as appropriate for the type returned by the function (or function import). The last path segment determines the system query options and HTTP verbs that can be used with this this URL

      Assuming that BillingDocOutputDataBinary is a stream property,

      GET BillingDocument('90000090')/self.GetPDF()?$expand=BillingDocOutputDataBinary
      

      is allowed without composability, and it requires the server to retrieve the same data (just serialize it differently).

       Related to ODATA-1644

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              heiko.theissen Heiko Theissen
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: