【问题标题】:RESTfully checking for resource availabilityRESTful 检查资源可用性
【发布时间】:2014-12-12 17:22:17
【问题描述】:

假设,我有一个带有用户的 REST 资源,我需要检查用户名是否已经存在(因此可以在前端注册)。

根据我的感觉,这样做的一个干净的 RESTful 方法是对用户名使用 HEAD 请求进行检查,例如:

HEAD /api/users/mary

并返回状态200(用户名存在)或404(用户名不存在)。我现在面临的问题:我正在通过 JavaScript 执行 REST 请求,用户名是否已经存在,如下所示:

$http.head('/api/users/' + username)
     .success(function(data, status, headers, config) {
         // username is taken
     })
     .error(function(data, status, headers, config) {
         // username is free
     });

现在,Safari 浏览器(可能还有其他浏览器)正在记录错误,以防它击中了一个不存在的用户(即从 API 返回 404):

Failed to load resource: the server responded with a status of 404 (Not Found)

虽然普通的最终用户通常看不到控制台,但我一直在考虑我的方法是否可以接受,或者我应该寻求不同的解决方案。我想出的另一个想法是使用204 状态(No Content)而不是404,但这感觉不那么“明确”。

欢迎任何不同的意见或建议!

【问题讨论】:

标签: rest http-method


【解决方案1】:

我认为您应该将 404 错误留给 HEAD /api/users/mary,但如果您想避免控制台日志,您可以创建一个不同的服务,该服务返回一个资源,告诉您用户是否存在。

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多