2.2.7.2.3 RetrieveComplexType Request
The purpose of the RetrieveComplexType request is to enable the value of a ComplexType property on an EntityType instance 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 an AtomPub-defined [RFC5023] request.
A RetrieveComplexType request MUST use the HTTP GET method and the URI specified in the HTTP request line MUST be a valid data service URI that identifies a ComplexType property on an EntityType instance, as specified in URI Format: Resource Addressing Rules (section 2.2.3).
If the RetrieveComplexType request was successful, the response MUST have a 200 status code as specified in [RFC2616]. The payload of such a response MUST be formatted using XML or Verbose JSON according to the rules defined in Complex Type (section 2.2.6.5.1) and Complex Type (section 2.2.6.3.4).
If the RetrieveComplexType 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 RetrieveComplexType request is defined as follows:
retrieveCT-Req = retrieveCT-ReqLine
retrieveCT-ReqHeaders
CRLF
retrieveCT-ReqLine = "GET"
SP entityTypeInstanceCTPropertyUri retrieveCT-QueryOps
SP HTTP-Version
CRLF
retrieveCT-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)
entityTypeInstanceCTPropertyUri = <Any Resource Path identifying a ComplexType
property on an Entity Type instance>
; see section 2.2.3 and section 2.2.3.5 -- URI3
retrieveCT-QueryOps = ["?" (customQueryOption / formatQueryOp)
*("&" customQueryOption)]
; see section 2.2.3.1 & section 2.2.3.6.1.5
The syntax of a response to a successful RetrieveComplexType request is defined as follows:
retrieveCT-Resp = Status-Line ; see [RFC2616] section 6.1.1
retrieveCT-RespHeaders
CRLF
retrieveCT-RespBody
retrieveCT-RespHeaders = DataServiceVersion ; see section 2.2.5.3
[ETag] ; see section 2.2.5.4
*(HTTP-Header-Types)
retrieveCT-RespBody = <ComplexType property value formatted using XML as per
section 2.2.6.5.1>
/(begin-object
quotation-mark "d" quotation-mark
name-seperator
(entityCTInVJson
end-object)
; see section 2.2.6.3.4