我开始评估 BreezeJS 以将其与 ASP.NET WebAPI 项目一起使用。首先,我很高兴找到一个项目,该项目将以可查询的方式向 OData 和 AJAX 客户端公开我的 MVC 数据,但随后我遇到了许多烦人的事情,我不知道该放在哪里,就 BreezeJS 库架构而言 - 战略性决定
- BreezeJS 不提供服务文档(带有顶级集合)
- 它也不提供基于标准的 $metadata url
- 它有一个类似 OData 的元数据服务,它只与 BreezeJS 客户端兼容(好点它的 JSON 格式)
- 请求/响应 JSON 有效负载根本不符合 OData
所以总而言之,我可以用来消费我的 MVC 项目的唯一客户端是 BreezeJS.js 甚至不是 datajs.js,其方式类似于 OData 但不是 OData(符合标准的客户端将无法识别它 - 恕我直言为什么这样做类似于标准但不符合标准的东西)。
现在有一个 Microsoft 支持的项目,称为 Microsoft ASP.NET Web API OData包,它确实支持上述所有场景,但这仍处于 alpha 阶段,尽管围绕它的社区讨论的规模很有希望。我已经广泛尝试过,尽管处于早期阶段,但它的作用就像魅力一样。
所以问题很明显:我应该决定支持 BreezeJS(他们声称在 rc 中)并失去标准合规性,还是在早期阶段承担 Microsoft 项目的风险并与 OData 保持一致?
我的目标是通过 AJAX 将我的 MVC API 发布到网站和移动设备。
更新:我发现 MS 最近更新了它的WebAPI OData 项目