Web服务客户端应用程序错误处理范例的正确术语是什么?

时间:2009-11-13 19:14:28

标签: web-services api client-side

我正在尝试研究Web服务客户端应用程序中的错误处理范例。我没有在Google上找到任何好结果 - 也许我没有使用正确的术语进行搜索。我将在下面描述我想象的错误处理方法。你能说出来吗?

让我们说我们的应用程序就像iTunes但在线。用户运行基于JavaScript的客户端,该客户端通过AJAX与Web服务交互。用户可以做的事情之一是创建“专辑”,然后在其中放置“歌曲”。在API级别,这由一个API调用表示,以创建新专辑,然后一个或多个调用将现有歌曲与新专辑相关联。

现在,传统的客户端可能暂停整个应用程序,直到确认已创建相册为止。为了制作一个更快捷的客户端,我们可以乐观地假设专辑创建API调用将成功,并立即在用户列表中显示新专辑。用户可以开始将歌曲拖动到新专辑中,即使创建它的API调用仍在幕后处理。 API会在到达时赶上。

在不太可能出现错误的情况下(可能是因特网连接中断),应用程序会通知用户,暂停并重试操作,直到成功或用户退出为止。如果用户退出,则应用程序只会忘记所有未提交的操作,并且用户会丢失一些操作。

这种策略的名称是什么?什么是关于这个主题的好文献?互联网链接?

1 个答案:

答案 0 :(得分:2)

我认为你描述的内容可以被视为某种“可靠的消息”。我不知道它用于基于ajax的应用程序,从我的角度来看,你的设计有一些弱点:

假设您不会只有两个API调用,而是三个或更多。想象一下,您的错误处理和报告将变得多么复杂。对API方法的调用应该是某种原子操作,所以如果将来的逻辑依赖于它,你应该等待响应。

如果您希望您的客户更快乐:您为什么还要执行“新专辑”电话呢?如果您在客户端管理相册更新,则无需在发送相册内容之前创建相册。

此类客户端的良好API与“在服务器上”API不同。也许它可以帮助你看看Fowlers的“工作单元”模式。它适用于数据库,但在我看来,这个想法也适用于您的设置。