我最近偶然发现了多个会谈,声称你应该尽快对任何传入的HTTP请求做出响应,这似乎是合理的,但我不清楚在使用此策略时如何沟通失败。如何在给予HTTP响应的过程中处理失败?
让我们来看看发送响应代码为200并开始呈现HTML页面的情况。在我们构造主体时,数据从各种查询中流入,并突然发生错误。在这个时候改变我们的想法已经太迟了。
或者,也许一个更实际的例子:
我们提供了潜在提供数据的很多的API。为了保持速度,我们通过一些项目函数将数据从数据库连接中流出,然后转换为流式JSON编码器,该编码器可以正确写入套接字。噗噗,出了点问题。 DB连接断开,重新连接尝试超时。我们刚刚刷新了100K个JSON对象,但结果集实际上比这个大。
有什么好的方法可以在HTTP响应的一半中优雅地死去?
在HTML的情况下,人们总是可以打印一些人类可读的信息。并且在API中,一旦可以用{ "results": [ /* payload goes here */ ], "error": { /* error information */ } }
作出响应,没关系,因为错误是在有效负载之后写入的。但理想情况下,我想使用HTTP协议中内置的东西。看起来很奇怪,说200,然后提供一个错误。有没有更好的办法?
你能否提供你提到的会谈的链接,如果你有他们? –