OData [1] definiert, wie über eine REST-Schnittstelle Abfragen an eine Web-Ressource gerichtet werden können. Die aktuelle 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/