假设我有一个用户的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
,但感觉不那么明确'。
欢迎任何不同的建议或建议!
答案 0 :(得分:1)
我认为你应该为HEAD /api/users/mary
留下404错误,但是如果你想避免控制台日志,你可以创建一个不同的服务来返回一个资源,告诉你用户是否存在。