我正在建立一个新的SPA,我在解决看似矛盾的问题时遇到了一些问题。
因此,从表面上看,SPA是相当基本的CRUD。但是,有一个问题:他们还希望所有功能都可以作为Web API使用。
鉴于Breeze在Web API之上工作,听起来听起来很合适,但我一直觉得我正在把一个方形的钉子撞到圆孔上。有人可以给我一个拖车吗?问题示例:
假设我有一个用于创建/添加小部件的屏幕。
所以,有了Breeze,这很容易。我只是连接我的EFContext Provider,并挂钩BeforeSaveEntity(ies)事件并前往城镇。
这很棒,但他们想要一个CreateWidget Web API。客户端必须构建一个Breeze兼容的JObject软件包才能模拟保存,这是不可接受的。
API似乎需要传统的DTO /域服务。类似的东西:
string CreateWidget(widgetDto)
Breeze的客户端库很棒,我希望能够将它用于我的GUI应用程序。但是,我很难弄清楚如何使用Breeze并且仍然在服务器端分离关注点,以便域服务可以从命令式API中使用,以便它们支持单元测试。
(我知道你可以覆盖SaveCore,我看过NoDb示例,但重要部分只是说“//你的代码会在这里”。我尝试的每个大道都闻起来像一个巨大的黑客,因为真的,Breeze希望控制服务器上的整个垂直堆栈,我只是想让它将breeze客户端帖子解码回我的DTO,以便我可以映射到我的API将使用的相同域服务,然后我想要将我的服务引发的错误传回客户端(我们使用非常优秀的wzValidate angular指令表示)。
我已经阅读了很多人的帖子,如果你真的觉得你需要DTO,那么你可以使用它们,但我已经空出来寻找一个工作的例子,它也在服务器上结合了业务逻辑。有人能指出我的资源吗?