0

我对rest apis很熟悉,但是今天有人问我:“如果资源存在但它的内容由于某种原因被阻止了怎么办?”

示例:尝试检索users/18但 id 为 18 的用户已被禁止/阻止/无论如何。

我认为最好的答案是返回 204,但是如何通知客户资源不可用的原因?

有没有最好的做法?

4

1 回答 1

1

我认为最好的答案是返回 204,但是如何通知客户资源不可用的原因?

不,204 不是一个好的选择——特别是因为 204 不能包含 message body

我希望要么

403 禁止

403(Forbidden)状态码表示服务器理解请求但拒绝授权。希望公开请求被禁止的原因的服务器可以在响应负载(如果有)中描述该原因。

404 未找到

希望“隐藏”当前存在的被禁止目标资源的源服务器可以改为响应状态码 404(未找到)。

451 因法律原因不可用

此状态代码表示服务器拒绝访问资源作为法律要求的结果。

于 2019-09-19T18:52:42.027 回答