2.2.7.2.4 RetrievePrimitiveProperty Request

The purpose of the RetrievePrimitiveProperty request is to enable the value of an EDMSimpleType property on an EntityType instance (or one of its constituent ComplexType instances) to be retrieved by a client. AtomPub, as specified in [RFC5023], does not define operations on subcomponents of an Entry Resource. As such, this request type is not based on any AtomPub-defined [RFC5023] request.

A RetrievePrimitiveProperty request MUST use the HTTP GET method and the URI specified by the client in the HTTP request line MUST be a valid data service URI that identifies a property of type EDMSimpleType on an EntityType instance or ComplexType instance, as described in URI Format: Resource Addressing Rules (section 2.2.3).

If the RetrievePrimitiveProperty request was successful, the response MUST have a 2xx status code as specified in [RFC2616]. The payload of such a response MUST be formatted using XML, JSON, or Verbose JSON, as defined in EDMSimpleType Property (section 2.2.6.5.3), Primitive Value ([MS-ODATAJSON] section 2.1.17), and EDMSimpleType Property (section 2.2.6.3.8), respectively.

If the RetrievePrimitiveProperty request is not successful (for example, an error occurred while processing the request) the response MUST be formatted according to Error Response (section 2.2.8.1).

The syntax of a RetrievePrimitiveProperty request is defined as follows:

 retrievePP-Req          = retrievePP-ReqLine
                           retrievePP-ReqHeaders
                           CRLF
  
 retrievePP-ReqLine      = "GET"
                           SP entityTypeInstancePropertyUri retrievePP-QueryOps
                           SP HTTP-Version
                           CRLF
  
 retrievePP-ReqHeaders   = [DataServiceVersion]        ; see section 2.2.5.3
                           [MaxDataServiceVersion]     ; see section 2.2.5.7
                           [If-None-Match]             ; see section 2.2.5.6
                           [Accept]                    ; see section 2.2.5.1
                           *(HTTP-Header-Types)
  
 entityTypeInstancePropertyUri = ; see section 2.2.7.4.3
  
 retrievePP-QueryOps     = ["?" customQueryOption *("&" customQueryOption)]
                           ; see section 2.2.3.1

The syntax of a response to a successful RetrievePrimitiveProperty request is defined as follows:

 retrievePP-Resp         =  Status-Line                 ; see [RFC2616] section 6.1.1
                            retrievePP-RespHeaders
                            CRLF
                            retrievePP-RespBody
  
 retrievePP-RespHeaders  =  DataServiceVersion          ; see section 2.2.5.3
                            [ETag]                      ; see section 2.2.5.4
                            [Content-Type]              ; see section 2.2.5.2
                            *(HTTP-Header-Types)
  
 retrievePP-RespBody     =  <Property value formatted in JSON  as per [ODataJSON4.0]
                             section 7>
                            / <Property value formatted in XML as per section
                             2.2.6.5.3>
                            / (begin-object
                               quotation-mark "d" quotation-mark
                               name-seperator
                               begin-object
                               (entityPropertyInVJson / entityPropertyInVJson2)
                               end-object
                               end-object)
                               ; see section 2.2.6.3.8