Breeze 保存包格式

Breeze save bundle format

我正在使用 Breeze JS,并希望使用 Progress Openedge 实现具有完整 CRUD 功能的服务器。 Breeze 网站谈论了很多关于能够编写您自己的服务器实现的内容,但我找不到描述 Breeze 发送到服务器的保存包格式的信息。有人知道任何文档或架构吗?

这方面的文档隐藏在 DataServiceAdapters 页面中。往下看,在标题 saveChanges (saveContext, saveBundle) -> promise.

JSON 在 this SO answer 中有一个例子。

SaveBundle 没有记录是有充分理由的:它在 BreezeJS 中没有定义!

它可以是您的服务器满足您的saveChanges工作流程所需的任何序列化对象。通过检查 github:

中的 a60_abstractDataServiceAdapter.js source 可以看出这是真的
proto._prepareSaveBundle = function (/*saveContext, saveBundle*/) {
  ...
  throw new Error("Need a concrete implementation of _prepareSaveBundle");
};

Breeze 确实发布了 实现 b00_breeze.dataService.webApi that satisfies the expectations of the companion Breeze ASP.NET Web API helper classes such as ContextProvider。如果您决定编写自己的服务器支持代码,则此实现值得研究。

但这只是许多可能的实现方式中的一种。例如,OData Web 服务器需要完全不同的包和格式来保存“$batch”变更集。只有您知道什么适合您的 "Progress Openedge" 服务器。

综上所述,我们确实深入研究了 SaveBundle 用于 documentation for "ContextProvider".

中的 Breeze Web API 服务的一些关键方面

阅读后,请随时提出更具体的问题。