Web applications 从单页应用程序调用WebAPI端点的最佳实践

Web applications 从单页应用程序调用WebAPI端点的最佳实践,web-applications,asp.net-mvc-4,knockout.js,single-page-application,Web Applications,Asp.net Mvc 4,Knockout.js,Single Page Application,我已经构建了我的webApi,现在我正在用knockout组装前端。这可能是一个愚蠢的问题,但我是一个新手,我想确保我的想法是正确的 假设您有一个包含列表中项目的todoList。您可以让用户向列表中添加一个项——模型会在javascript视图模型中更新其“itemToAdd”数组。当用户单击“保存”时,项目数组立即在客户端更新。在这一点上调用PUT/api/item合适吗?如果是这样的话,如果该看跌期权失败,“行为标准”是什么?将该项从todolist viewModel中取出并显示错误 取

我已经构建了我的webApi,现在我正在用knockout组装前端。这可能是一个愚蠢的问题,但我是一个新手,我想确保我的想法是正确的


假设您有一个包含列表中项目的todoList。您可以让用户向列表中添加一个项——模型会在javascript视图模型中更新其“itemToAdd”数组。当用户单击“保存”时,项目数组立即在客户端更新。在这一点上调用PUT/api/item合适吗?如果是这样的话,如果该看跌期权失败,“行为标准”是什么?将该项从todolist viewModel中取出并显示错误

取决于您希望用户体验如何

单击“保存”按钮时,不能将新项目添加到客户端的列表中。但是显示一个微调器,让用户知道您正在尝试保存。服务器返回的任何错误消息都可以显示给用户。如果保存成功,则将其添加到列表中

或者,您可以在单击“保存”按钮后立即将其添加到列表中,并让用户知道显示的内容尚未保存,他们需要将更改同步回服务器。然后在他们选择时将所有更改发送到服务器。

视情况而定

您可以通过以下两种方式进行操作:先保存,然后显示;或者通过另一种方式(如果失败,则撤消)

但我认为先保存比较简单,因为如果失败了,您不必考虑撤消它

看看大本营,看看他们是怎么做到的。如果这对你有用,就用同样的方法