使用具有多个视图的淘汰赛 - 如何最好地构建API

时间:2015-09-08 08:03:12

标签: api mvvm knockout.js

我正在构建一个在一个页面中有多个viewModel的淘汰应用程序。

到目前为止,我一直在嘲笑数据,但我现在正在构建将运行它的API。

我的问题是我如何处理与API有关的复杂viewModel。

例如,我有一个“添加公司”页面,其中包含以下标签: -

Company info (name, address, etc.)
People at company (multiple people)
Insurance Documentation (3 different types)

我目前将每个都作为单独的viewModels。

当我按下保存时,我现在很困惑,最好的办法是什么。

如果我发送捆绑在一起的所有3个viewModel(将它们添加到一个主viewModel),那么很容易确保所有ID都排成一行,但这似乎不是模块化的或者是个好主意而且打破了'API'的想法中心”。

但是,如果我将每个viewModel发送到不同的API端点,我如何确保ID匹配正确(人员 - >公司)等。

目前我正在考虑两个选项: -

当按'添加新'时,在数据库上创建一个空白公司并获取其ID - >用它来匹配所有东西。

  • 或 -

当我按保存时,首先发送新公司,然后当响应回来时(希望)好,然后使用现在正确的ID将其余信息上传到各自的终点。

两者看起来都很混乱,所以我想知道“接受”的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您的第二种方法是我如何做,按Save将首先发送公司模型。然后,一旦您收到带有公司ID的“确定”回复,您就可以在回调中将其添加到其他模型并发送。

没有什么比这简单,只是标准的异步行为。