OData [1] definiert, wie über eine REST-Schnittstelle Abfragen definiert werden können. Die aktueller Preview-Version der WCF Web API [2] bietet auf einfache Weise unterstützung für diesen Standard. Um die von einem REST-Service angebotenen Daten abfragen zu lassen, muss lediglich eine Service-Operation, die ein IQueryable<T> zurückliefert, bereitgestellt werden.
[WebGet(UriTemplate = "")]
public IQueryable<Ticket> GetApprovedOrders()
{
return Repository.Tickets.AsQueryable();
}
Die über diese Operation bereitgestellten Daten können nun unter Verwendung von Parametern, die sich an OData orientieren, abgefragt werden:
http://.../tickets?$filter=LastName eq Sorglos&$orderby=TicketId desc
Dabei gilt zu bachten, dass im Zuge dessen das IQueryable erweitert wird und somit mit diesem in weiterer Folge nur die wirklich benötigten Daten abgerufen werden. Somit lassen sich komfortabel und performant "Remote-Wrapper" für O/R-Mapper etc. entwickeln.
[1] http://www.odata.org/
[2] http://wcf.codeplex.com/