RESTful检查资源可用性

时间:2014-12-12 17:22:18

标签: rest http-method

假设我有一个用户的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,但感觉不那么明确'。

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

1 个答案:

答案 0 :(得分:1)

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