【发布时间】: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,但这感觉不那么“明确”。
欢迎任何不同的意见或建议!
【问题讨论】:
-
我认为你的方法是完全可以接受的,这里也是:pragmaticapi.com/2013/02/14/restful-patterns-for-the-head-verb
标签: rest http-method