Skip to Content
Technical Articles
Author's profile photo Andre Fischer

Key-as-segment convention support by RAP

Based on the following question RAP: Key As Segment capability support posted by Geert-Jan Klaps I found that I missed to blog about a nice “out-of-the-box” feature available for OData V4 services that lets a consumer use an alternate convention for addressing entities by appending a segment containing the unquoted key value to the URL.

This feature is described in the OData V.4.01 specification OData Version 4.01. Part 2: URL Conventions (oasis-open.org)

That means instead of

/sap/opu/odata4/dmo/ui_travel_proc_m_o4/srvd/dmo/ui_travel_processor_m/0001/Travel('1')

you can use the more REST like syntax

/sap/opu/odata4/dmo/ui_travel_proc_m_o4/srvd/dmo/ui_travel_processor_m/0001/Travel/1

it even works with navigation so that you can use the following URL as well:

/sap/opu/odata4/dmo/ui_travel_proc_m_o4/srvd/dmo/ui_travel_processor_m/0001/Travel/1/_Booking/2

This feature works for OData V4 services based on the ABAP RESTful Application Programming Model but also for services based on a code based implementation based on the SAP Gateway OData V4 framework when using the latest SP of SAP_GWFND.
 

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Stoyko Stoev
      Stoyko Stoev

      Hey, Andre,

      This is great indeed - I prefer working this way with OData APIs that are new enough to support it.

      One more tip - handling of composite keys:

      /ProductTexts(ProductID='A1',Language='EN')

      Would become:

      /ProductTexts/A1/EN

      Note that the order is important - the keys must be specified in the order in which they appear in the $metadata.

      Best,

      Stoyko

      Author's profile photo Andre Fischer
      Andre Fischer
      Blog Post Author

      Correct !