Web应用程序操作通常意味着可以快速避免用户长时间等待。然而,Web应用程序可能执行的某些操作可能是计算密集型的并且花费相当多的时间。 REST中处理此类操作的最佳做法是什么,可能需要几分钟但需要立即响应用户? Web应用程序可以花几分钟时间返回HTTP请求的响应,还是更好地返回202响应,在后台其他地方处理,然后向用户提供某种形式的通知?
答案 0 :(得分:0)
Web应用程序可以花几分钟时间返回HTTP请求的响应
没有。这种方法的部分问题在于,如果服务器未及时确认请求,则客户端将不知道它已到达预定目的地。
最好是返回202响应,在后台的其他地方处理,然后向用户提供某种形式的通知吗?
是。这正是202 Accepted为
设计的202回复是故意不置可否的。其目的是允许服务器接受对某些其他进程的请求(可能是每天只运行一次的面向批处理的进程),而不要求用户代理与服务器的连接持续到进程完成为止。通过此响应发送的表示应该描述请求的当前状态,并指向(或嵌入)状态监视器,该状态监视器可以向用户提供对请求何时将被满足的估计。
我认为,它可以帮助记住我们正在谈论您的集成域;客户端没有与您的应用程序通话。而是与您的API交谈,它假装是客户端可以集成的网站。因此,您的客户端会将请求发送给API,并且API会响应一条接受的消息,并附带一系列链接,这些链接将帮助客户继续使用协议并最终实现其目标。