Sto usando Microsoft WebAPI con i seguenti pacchetti installati Nuget:
http://nuget.org/packages/Microsoft.Data.OData/
http://nuget.org/packages/microsoft.aspnet.webapi.odata
che mi permette di scrivere cose come:
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;
}
Allora posso chiamarlo usando jQuery Ajax (per l'esempio, preferisco usare BackboneJS) in questo modo:
$.ajax({ url: '/api/items', data: $.param({ '$filter': 'ID eq 1' }) });
Quale restituirà quindi solo gli articoli con un ID uguale a 1, che penso sia quello che si sta cercando?
Se itemID è l'ID principale dell'oggetto si stanno recuperando, probabilmente seguire i principi REST e creare e API in cui l'URL per recuperare un elemento con l'ID 1 sarebbe:
/api/items/1
E utilizzare solo query oData sulla raccolta di elementi se si eseguono query in base ad altre proprietà degli elementi nella raccolta o se si esegue qualcosa di simile di seguito per esempio quando si recuperano i primi 10 record.
$.ajax({ url: '/api/items', data: $.param({ '$top': 10 }) });
fonte
2013-03-21 00:34:38
query.ApplyTo sembra quello che sto cercando. Ne ho bisogno su mono. Grazie. –