我正在为我的计算机科学论文构建动态拼车应用程序的 RESTful 协议。
在协议中,我还必须正式指定每个操作的 HTTP 状态代码。我有这个“隐私相关”的问题。假设如下:
GET /api/persons/angela/location
检索用户“angela”的当前位置。很明显,不是每个人都应该能够获得结果。只有安吉拉本人和可能会选择她的司机应该能够知道。
我无法决定是在此处返回 404 Not Found 还是 401 Forbidden。
有什么提示吗?什么是最好的,为什么?
我正在为我的计算机科学论文构建动态拼车应用程序的 RESTful 协议。
在协议中,我还必须正式指定每个操作的 HTTP 状态代码。我有这个“隐私相关”的问题。假设如下:
GET /api/persons/angela/location
检索用户“angela”的当前位置。很明显,不是每个人都应该能够获得结果。只有安吉拉本人和可能会选择她的司机应该能够知道。
我无法决定是在此处返回 404 Not Found 还是 401 Forbidden。
有什么提示吗?什么是最好的,为什么?
绝对不是 404。404 只是未找到。
401 是访问被拒绝。
403被禁止。
我会选择401
如果请求中提供了授权凭据,并且请求者无权访问此资源,则应返回 403。
如果请求中未提供授权凭据,则应返回 401。
对我来说,我将使用 400 Bad request。
因为我的应用程序不会以编程方式进入不可访问的资源。
在我看来,过滤用户权限并隐藏不可访问的资源是很好的用户体验。如果我的服务器收到无法访问的请求,这意味着有人试图做某事。
这就是为什么我在我的应用程序中选择 400 - Bad request。