Предположим, у меня есть ресурс REST с пользователями, и мне нужно проверить, существует ли имя пользователя или нет (и, следовательно, его можно зарегистрировать на лицевой стороне).Исследуйте доступность ресурсов
Из моего чувства, чистый RESTful подход для этого было бы использовать запрос HEAD, на имя пользователя, чтобы проверить, таких как:
HEAD /api/users/mary
и возвращение либо статус 200
(имя пользователя существует), или 404
(имя пользователя не существует). Проблема я столкнулся в настоящее время: я выступаю запрос REST с помощью JavaScript, существует ли уже имя пользователя, например, так:
$http.head('/api/users/' + username)
.success(function(data, status, headers, config) {
// username is taken
})
.error(function(data, status, headers, config) {
// username is free
});
Теперь, Safari браузер (и, предположительно, другие браузеры, а), регистрируетесь ошибка, в случае несуществующий пользователь осенило (т.е. 404
возвращается из API):
Failed to load resource: the server responded with a status of 404 (Not Found)
Хотя нормальный конечный пользователь обычно не видит консоль, я думал ли мой подход в целом является приемлемым, или я должен пойти на другое решение. Еще одна идея, которую я придумал, заключается в том, чтобы использовать 204
статус (No Content
) вместо 404
, но это кажется менее «явным».
Любые различные советы или предложения приветствуются!
Я думаю, что ваш подход полностью приемлем, и здесь тоже: http://www.pragmaticapi.com/2013/02/14/restful-patterns-for-the-head-verb/ –