REST API-请求另一个帐户';s记录返回空字符串还是HTTP 404?

REST API-请求另一个帐户';s记录返回空字符串还是HTTP 404?,api,rest,Api,Rest,应该是对REST API中属于另一个帐户的资源的请求返回的HTTP 404状态代码或带有空字符串的HTTP 200?您可能正在查找403禁止的。这适用于资源存在但(可能)登录用户没有获取权限的情况 404notfound只能在资源不存在时使用,这意味着其他权限将无济于事 200 OK只有在请求成功完成,客户端获得了资源的有效表示时才应该给出。同意@Robert Bräutigam的观点,HTTP 403似乎最合适 但是,考虑一个URL,比如: /api/some-user-user-id/pro

应该是对REST API中属于另一个帐户的资源的请求返回的
HTTP 404
状态代码或带有空字符串的
HTTP 200

您可能正在查找
403禁止的
。这适用于资源存在但(可能)登录用户没有获取权限的情况

404notfound
只能在资源不存在时使用,这意味着其他权限将无济于事


200 OK
只有在请求成功完成,客户端获得了资源的有效表示时才应该给出。

同意@Robert Bräutigam的观点,HTTP 403似乎最合适

但是,考虑一个URL,比如:

/api/some-user-user-id/profile
如果您为现有用户返回403,为不存在的用户返回404,那么您可能使外部人员能够发现用户ID


这可能是问题,也可能不是问题。

通知另一个用户特定记录存在并属于另一个帐户对我来说似乎是一个安全问题,不是吗?只有当URI泄漏某种信息时,这才是一个安全问题。否则,它会帮助客户端知道发生了什么,链接是否错误(
404
)或者链接是否正常,只是我没有登录(
401
),或者链接是否正常,但我没有查看(
403
)的权限。例如,我可以看到,如果用户名是URI的一部分,那就是一个问题。因为用户名通常是登录凭据的一部分。