我有一个RESTful API,可以调用另一个远程Web服务。通常,我必须针对特定API函数的每个请求查询此远程服务,并且在我的代码中,我包装和/或修改了部分结果。
但是,此远程服务可能无法及时应答或引发错误。那么我的API应该抛出的最合乎逻辑的响应是什么?我正在特别考虑:
...或做完全不同的事情?
最佳答案
这完全取决于您希望API传达给客户端的内容。
500 :客户端无法获取他的资源,并且不知道他是否应该使用另一个请求轰炸您的服务器,但至少知道它可能存在
503 :客户端无法获取其资源,但至少知道它可能存在,并且可以稍后在X时间内重试。
200 *空响应*:客户端被告知他的资源为空,并且一切正常,因此可能不会再回来,而资源可能不为空,并且稍后可用(有误导性)。
200 *错误消息*:告诉客户端一切正常,但在您的上下文中收到错误消息。 (这是错误的,完全自相矛盾!)
我的建议:
做 503
关于api - 使用远程API时处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451724/