Tôi đang sử dụng Microsoft WebAPI với các gói NuGet sau được cài đặt:
http://nuget.org/packages/Microsoft.Data.OData/
http://nuget.org/packages/microsoft.aspnet.webapi.odata
nào cho phép tôi viết những thứ như:
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;
}
Sau đó, tôi có thể gọi nó bằng cách sử dụng jQuery Ajax (vì lợi ích của ví dụ, tôi thích sử dụng BackboneJS) như sau:
$.ajax({ url: '/api/items', data: $.param({ '$filter': 'ID eq 1' }) });
Sau đó, chỉ sau đó sẽ trả về các mục có ID bằng 1, mà tôi nghĩ bạn là gì sau?
Nếu ItemID là ID chính của đối tượng bạn đang lấy, tôi có lẽ sẽ theo nguyên tắc REST và tạo và API nơi url để lấy một mục với ID trong tổng số 1 sẽ là:
/api/items/1
Và chỉ sử dụng các truy vấn oData trên tập hợp các mục nếu tôi đang truy vấn dựa trên các thuộc tính khác của các mục trong bộ sưu tập, hoặc làm một cái gì đó như dưới đây ví dụ khi truy xuất 10 bản ghi hàng đầu.
$.ajax({ url: '/api/items', data: $.param({ '$top': 10 }) });
Nguồn
2013-03-21 00:34:38
query.ApplyTo có vẻ như tôi đang tìm kiếm. Tôi cần nó trên mono. Cảm ơn bạn. –