Le service de données REST permet d'extraire bien plus que des entités et notamment des collections d'entités, des propriétés, etc.
Une demande RetrieveEntitySet peut être utilisée par un client pour extraire un ensemble d'entités eXtreme Scale. Les entités sont représentées comme un document de flux Atom ou un cluster JSON dans la charge de la réponse. Pour plus de détails sur le protocole RetrieveEntitySet défini dans WCF Data Services, voir MSDN: RetrieveEntitySet Request.
L'exemple de demande RetrieveEntitySet ci-après extrait toutes les entités Order associées à l'entité Customer('IBM'). Seules les commandes 5000 et 5001 sont affichées ici.
AtomPub
<?xml version="1.0" encoding="utf-8"?>
<feed xml:base = "http://localhost:8080/wxsrestservice/restservice"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m = "http://schemas.microsoft.com/ado/2007/08/dataservices/
metadata" xmlns = "http://www.w3.org/2005/Atom">
<title type = "text">Order</title>
<id>http://localhost:8080/wxsrestservice/restservice/NorthwindGrid/
Order</id>
<updated>2009-12-16T22:53:09.062Z</updated>
<link rel = "self" title = "Order" href = "Order"/>
<entry>
<category term = "NorthwindGridModel.Order" scheme = "http://
schemas.microsoft.com/
ado/2007/08/dataservices/scheme"/>
<id>http://localhost:8080/wxsrestservice/restservice/
NorthwindGrid/Order(orderId=5000,customer_customerId=
'IBM')</id>
<title type = "text"/>
<updated>2009-12-16T22:53:09.062Z</updated>
<author>
<name/>
</author>
<link rel = "edit" title = "Order" href = "Order(orderId=5000,
customer_customerId='IBM')"/>
<link rel = "http://schemas.microsoft.com/ado/2007/08/
dataservices/related/customer"
type = "application/atom+xml;type=entry"
title = "customer" href = "Order(orderId=5000,
customer_customerId='IBM')/customer"/>
<link rel = "http://schemas.microsoft.com/ado/2007/08/
dataservices/related/orderDetails"
type = "application/atom+xml;type=feed"
title = "orderDetails" href = "Order(orderId=5000,
customer_customerId='IBM')/
orderDetails"/>
<content type = "application/xml">
<m:properties>
<d:orderId m:type = "Edm.Int32">5000</d:orderId>
<d:customer_customerId>IBM</d:customer_customerId>
<d:orderDate m:type = "Edm.DateTime">2009-12-16T19:
46:29.562</d:orderDate>
<d:shipCity>Rochester</d:shipCity>
<d:shipCountry m:null = "true"/>
<d:version m:type = "Edm.Int32">0</d:version>
</m:properties>
</content>
</entry>
<entry>
<category term = "NorthwindGridModel.Order" scheme = "http://
schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
<id>http://localhost:8080/wxsrestservice/restservice/
NorthwindGrid/Order(orderId=5001, customer_customerId='IBM')
</id>
<title type = "text"/>
<updated>2009-12-16T22:53:09.062Z</updated>
<author>
<name/>
</author>
<link rel = "edit" title = "Order" href = "Order(orderId=5001,
customer_customerId='IBM')"/>
<link rel = "http://schemas.microsoft.com/ado/2007/08/
dataservices/related/customer"
type = "application/atom+xml;type=entry"
title = "customer" href = "Order(orderId=5001,
customer_customerId='IBM')/customer"/>
<link rel = "http://schemas.microsoft.com/ado/2007/08/
dataservices/related/orderDetails"
type = "application/atom+xml;type=feed"
title = "orderDetails" href = "Order(orderId=5001,
customer_customerId='IBM')/orderDetails"/>
<content type = "application/xml">
<m:properties>
<d:orderId m:type = "Edm.Int32">5001</d:orderId>
<d:customer_customerId>IBM</d:customer_customerId>
<d:orderDate m:type = "Edm.DateTime">2009-12-16T19:50:
11.125</d:orderDate>
<d:shipCity>Rochester</d:shipCity>
<d:shipCountry m:null = "true"/>
<d:version m:type = "Edm.Int32">0</d:version>
</m:properties>
</content>
</entry>
</feed>
JSON
{"d":[{"__metadata":{"uri":"http://localhost:8080/wxsrestservice/
restservice/NorthwindGrid/Order(orderId=5000,
customer_customerId='IBM')",
"type":"NorthwindGridModel.Order"},
"orderId":5000,
"customer_customerId":"IBM",
"orderDate":"\/Date(1260992789562)\/",
"shipCity":"Rochester",
"shipCountry":null,
"version":0,
"customer":{"__deferred":{"uri":"http://localhost:8080/
wxsrestservice/restservice/NorthwindGrid/Order(orderId=
5000,customer_customerId='IBM')/customer"}},
"orderDetails":{"__deferred":{"uri":"http://localhost:8080/
wxsrestservice/restservice/NorthwindGrid/Order(orderId=
5000,customer_customerId='IBM')/orderDetails"}}},
{"__metadata":{"uri":"http://localhost:8080/wxsrestservice/
restservice/NorthwindGrid/
Order(orderId=5001,
customer_customerId='IBM')",
"type":"NorthwindGridModel.Order"},
"orderId":5001,
"customer_customerId":"IBM",
"orderDate":"\/Date(1260993011125)\/",
"shipCity":"Rochester",
"shipCountry":null,
"version":0,
"customer":{"__deferred":{"uri":"http://localhost:8080/
wxsrestservice/restservice/NorthwindGrid/Order(orderId=
5001,customer_customerId='IBM')/customer"}},
"orderDetails":{"__deferred":{"uri":"http://localhost:8080/
wxsrestservice/restservice/NorthwindGrid/Order(orderId=
5001,customer_customerId='IBM')/orderDetails"}}}]}
Une demande RetrievePrimitiveProperty peut être utilisée pour extraire la valeur d'une propriété d'une instance d'entité eXtreme Scale. La valeur de la propriété est représentée au format XML pour les demandes AtomPub et comme objet JSON pour les demandes JSON dans la charge de la réponse. Pour plus de détails sur la demande RetrievePrimitiveProperty, voir MSDN: RetrievePrimitiveProperty Request.
L'exemple suivant de demande RetrievePrimitiveProperty extrait la propriété contactName de l'entité Customer('IBM').
AtomPub
<contactName xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
John Doe
</contactName>
JSON
Pour plus de détails sur la demande RetrieveValue, voir MSDN: RetrieveValue Request.
L'exemple de demande RetrieveValue ci-après extrait la valeur brute de la propriété contactName de l'entité Customer('IBM').
Une demande RetrieveLink peut être utilisée pour extraire les liens représentant une association to-one ou to-many. Pour l'association to-one, il s'agit d'un lien d'une instance d'entité eXtreme Scale vers une autre et le lien est représenté dans la charge de la réponse. Pour l'association to-many, il s'agit de liens d'une instance d'entité eXtreme Scale vers toutes les autres instances dans une collection d'entités eXtreme Scale spécifiées et la réponse est représentée sous forme de liens dans la charge de la réponse. Pour plus de détails sur la demande RetrieveLink, voir MSDN: RetrieveLink Request.
Voici un exemple de demande RetrieveLink. Dans cet exemple, nous extrayons l'association entre l'entité Order(orderId=5000,customer_customerId='IBM') et son client. La réponse indique l'URI de l'entité Customer.
AtomPub
<?xml version="1.0" encoding="utf-8"?>
<uri>http://localhost:8080/wxsrestservice/restservice/
NorthwindGrid/Customer('IBM')</uri>
JSON
Une demande RetrieveServiceMetadata peut être utilisée pour extraire le document CSDL (conceptual schema definition language), qui décrit le modèle de données associé au service de données REST d'eXtreme Scale. Pour plus de détails sur la demande RetrieveServiceMetadata, voir MSDN: RetrieveServiceMetadata Request.
Une demande RetrieveServiceDocument peut être utilisée pour extraire le document de service qui décrit la collection de ressources exposée par le service de données REST d'eXtreme Scale. Pour plus de détails sur la demande RetrieveServiceDocument, voir MSDN: RetrieveServiceDocument Request.