rest - 如果在读取 POST 响应之前网络出现故障怎么办?

标签 rest post error-handling

从具有不可靠网络连接(例如,一些糟糕的蜂窝网络)的客户端访问 REST 服务时,在读取对 POST 的响应之前网络连接断开的错误处理有哪些最佳实践。由于 POST 不是幂等的,天真地重试是不安全的。有这方面的最佳实践吗?假设我也在设计这个的服务端,所以电线的那一端也没有任何限制。

最佳答案

编写一个协议(protocol),当客户端没有使用第一个资源时,该协议(protocol)不允许创建第二个资源。例如,在 GET 资源之后,客户端应该 POST 回它消耗了它,这样服务就可以在下一个 GET 到达时安全地创建另一个资源。如果没有验证 POST 到达,服务器应该通过发送为第一个 GET 创建的相同资源来响应每个后续 GET(这可能是特定于客户端的)。 -- 这样,您可以在预定义的超时间隔过去后安全地重复 GET。 (如果重复次数超过给定值,则意味着您有永久性的网络或服务错误,您必须通知用户。)

关于rest - 如果在读取 POST 响应之前网络出现故障怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485047/

相关文章:

python - Django Rest 框架 - 外键上的 NOT NULL 约束

c++ - 使用两个链表

vba - 函数/命令超时

javascript - 如何对 ember 数据进行多对多反序列化

rest - Azure - 从 IDL 生成 REST SDK

java - SocketTimeoutException cxf httpconduit PUT

c++ - curllib POST 正文数据(如何?)

Django:将请求直接(内联)传递到第二个 View

angularjs - Angular $http POST 从 ExpressJS 获取空值

c# - 创建C#验证类的好方法