Breeze.js和Tasypie:处理非OData API

时间:2013-08-26 14:49:18

标签: javascript breeze

我在很多帖子中看到Breeze.js应该与任何http服务资源一起使用。

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中遗漏了什么吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

看看Edmunds的样本。在该示例中,breeze客户端发出不使用OData的服务请求。

如果您的服务不支持OData查询语法,则无法在breeze客户端上使用类似LINQ的查询表达式。你不能使用“where”和“orderBy”。这就是交易。

您仍然可以为接受GET请求的任何服务端点撰写查询。 EntityQuery.from(anyURL)应该可以正常工作。您仍然可以利用Breeze客户端数据管理的其他好处 - 缓存,验证,实体导航等。但您可能必须在客户端上构建元数据并处理查询并自行保存。