Breeze js可以仅在客户端与仅支持REST的服务器一起使用吗?原因是我想利用Breeze的客户端数据检索和管理功能,而Server端已经充分开发。

最佳答案

是的,需要警告的是,您仍然需要在客户端或服务器上提供Breeze元数据,当然,您将无法使用任何EntityQuery.method,例如“ where”,“ take”,“ skip” ','orderBy'等。Breeze示例包括与任意REST api对话的“ Edmunds”示例。摘录在这里:

var serviceName = "http://api.edmunds.com/v1/api/"; // edmunds

var ds = new breeze.DataService({
    serviceName: serviceName,
    hasServerMetadata: false,
    useJsonp: true,
    jsonResultsAdapter: jsonResultsAdapter
});

var entityManager = new breeze.EntityManager({dataService: ds});


var q = EntityQuery.from("vehicle/makerepository");
// this will call -> "http://api.edmunds.com/v1/api/vehicle/makeRespository"
myEntityManager.executeQuery(q).then(...);


如果您的API支持参数(除了“纯” REST或代替“纯” REST),您还可以使用EntityQuery.withParameters方法。即类似:

var makeId = "Ford xxx";
// will send (approx) -> "http://api.edmunds.com/v1/api/vehicle/modelRespositoryfindByMakeId?makeId=Ford xxx"

var query = breeze.EntityQuery
        .from("vehicle/modelrepository/findbymakeid")
        .withParameter( { makeId: makeId };


如果要使用这两种方法,请同时参见有关元数据的Breeze文档和JsonResultsAdapter。 (并查看Edmunds示例)。

希望这可以帮助。

关于javascript - 客户端Breeze JS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17215338/

10-12 07:24