我有一个RESTful API,可以调用另一个远程Web服务。一般情况下,我必须查询此远程服务以查找到我的特定API函数的每个请求,并且在我的代码中,我正在包装和/或修改结果的一部分。
但是,此远程服务可能无法及时应答或引发错误。那么我的API应该抛出的最合理的响应是什么?我特意想到:
......或做一些完全不同的事情?
答案 0 :(得分:1)
这一切都取决于您希望API传达给您的客户端。
500 :客户端无法获取他的资源,也不知道他是否应该用另一个请求轰炸您的服务器,但至少知道它可能存在
503 :客户端无法获取他的资源,但至少知道它可能存在,并且可以在X时间后重试。
200 * 空响应 *:客户端被告知他的资源是空的,一切正常,所以当资源可能不为空时可能不会回来一秒后可用(有点误导)。
200 * 错误消息 *:客户端被告知一切正常,但在您的上下文中收到错误消息。 (这是错误的,完全与自己相矛盾!)
我的建议: 执行 503