【问题标题】:Mixture between 200 (OK) and 403 (Forbidden) HTTP response混合 200(正常)和 403(禁止)HTTP 响应
【发布时间】:2022-01-06 03:33:00
【问题描述】:
【问题讨论】:
标签:
api
rest
http
response
http-status-codes
【解决方案1】:
它仍然是状态 200,因为他们成功地获取了他们有权访问的数据。如果他们获得了他们有权访问的数据,是否有其他他们无法访问的数据都没有区别。如果他们不尝试访问其他数据,也没有理由告诉他们他们无权访问这些数据。
206 表示您正在以较小的部分发送他们有权访问的数据。
想象一个用户端点。管理员可以访问所有用户信息,而普通用户只能访问他们自己的信息。因此,您可以使用 /user/ 获取所有用户,使用 /user/:id 获取特定用户。
如果普通用户访问 /user/:id ,其中 id 是他们自己的 id,他们应该得到 200。如果他们尝试访问 /user/ 或 /user/:id 而 id 不是他们的 id,他们应该得到 403 (因为他们不允许使用前者并允许使用后者,但不能获取该 id 的数据)。如果他们没有登录,他们应该得到一个 401(如果他们登录了,他们是否可以访问它甚至都没有关系)。
如果您只有一个 /user/ 端点,则相同,其中数据基于例如返回他们的 id 存储在 cookie 中。
如果返回数据:200。如果不允许他们使用该端点:403。同样,如果他们没有登录:401。