Używam Microsoft WebAPI z poniższych pakietów Nuget zainstalowanych:
http://nuget.org/packages/Microsoft.Data.OData/
http://nuget.org/packages/microsoft.aspnet.webapi.odata
który pozwala mi napisać takie rzeczy jak:
using System.Web.Http;
using System.Web.Http.OData.Query;
// Some stuff left out
[Queryable]
public IQueryable<Item> Get(ODataQueryOptions<Item> query)
{
var items = query.ApplyTo(from item in context.Items select item);
return (IQueryable<Item>) items;
}
Potem można to nazwać używając Ajax jQuery (dla przykładu, wolę używać BackboneJS) w następujący sposób:
$.ajax({ url: '/api/items', data: $.param({ '$filter': 'ID eq 1' }) });
Który zwróci następnie tylko elementy o identyfikatorze równym 1, co według mnie jest po?
Jeśli itemID jest głównym ID obiektu jesteś odzyskiwaniem, prawdopodobnie przestrzegania zasad REST oraz tworzenie i API, gdzie url aby pobrać element z ID 1 będzie:
/api/items/1
I używaj tylko zapytań oData w kolekcji przedmiotów, jeśli pytałem na podstawie innych właściwości elementów w kolekcji, lub wykonaj coś takiego jak na przykład podczas pobierania 10 rekordów.
$.ajax({ url: '/api/items', data: $.param({ '$top': 10 }) });
query.ApplyTo wygląda na to, co szukam. Potrzebuję go na mono. Dziękuję Ci. –