2013-08-26 17 views
1

我看到很多不同的帖子,Breeze.js應該可以與任何http服務資源一起使用。Breeze.js和Tasypie:處理非OData API

Breeze Documentation中,您始終提及OData網址。

例如,下面的微風代碼:

var query = breeze.EntityQuery() 
        .from("Customers") 
        .where("CompanyName", "startsWith", "C") 
        .orderBy("CompanyName"); 

將導致以下的OData請求:

http://www.example.com/api/Northwind/Customers?$filter=startswith(CompanyName,'C') eq true&$orderby=CompanyName 

那麼這很好,但我使用的Django + Tastypie,它不支持OData參數,所以這個請求在我的後端失敗。

我該如何改變breeze.js生成API請求到後端服務器的方式?我在Breeze doc中錯過了什麼嗎?感謝您的幫助。

回答

2

查看Edmunds示例。在該示例中,微風客戶端請求不說OData的服務。

如果您的服務不支持OData查詢語法,那麼您不能在breeze客戶端上使用類似LINQ的查詢表達式。你不能使用「where」和「orderBy」。這就是交易。

您仍然可以爲任何接受GET請求的服務端點撰寫查詢。 EntityQuery.from(anyURL)應該可以正常工作。您仍然可以利用Breeze客戶端數據管理的其他優勢 - 緩存,驗證,實體導航等。但您可能必須在客戶端上構建元數據並處理查詢並保存。