从具有不可靠网络连接(例如,一些糟糕的蜂窝网络)的客户端访问 REST 服务时,在读取对 POST 的响应之前网络连接断开的错误处理有哪些最佳实践。由于 POST 不是幂等的,天真地重试是不安全的。有这方面的最佳实践吗?假设我也在设计这个的服务端,所以电线的那一端也没有任何限制。
最佳答案
编写一个协议(protocol),当客户端没有使用第一个资源时,该协议(protocol)不允许创建第二个资源。例如,在 GET 资源之后,客户端应该 POST 回它消耗了它,这样服务就可以在下一个 GET 到达时安全地创建另一个资源。如果没有验证 POST 到达,服务器应该通过发送为第一个 GET 创建的相同资源来响应每个后续 GET(这可能是特定于客户端的)。 -- 这样,您可以在预定义的超时间隔过去后安全地重复 GET。 (如果重复次数超过给定值,则意味着您有永久性的网络或服务错误,您必须通知用户。)
关于rest - 如果在读取 POST 响应之前网络出现故障怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485047/