Проверка запроса регистрации пользователя должна возвращать 200 или 400 - PullRequest
0 голосов
/ 12 марта 2019

Клиент отправляет совершенно действительный запрос на регистрацию пользователя, например, имя пользователя и пароль.

Сервер обнаруживает, что имя пользователя уже занято. Какой правильный статус возврата - 200 с сообщением об ошибке или 400? В спецификации сказано:

400 означает, что с запросом что-то не так. Протокол ответа на недопустимый запрос протокола передачи гипертекста (HTTP) 400 код указывает, что сервер не может или не будет обрабатывать запрос из-за чего-то, что воспринимается как ошибка клиента (например, неправильно сформированный синтаксис запроса, неверный фрейм сообщения запроса или ложная маршрутизация запросов).

Но технически в запросе нет ничего плохого.

1 Ответ

2 голосов
/ 12 марта 2019

Что является «неправильным», так это то, что запрос был предназначен для создания нового пользователя, но это не удалось, поскольку имя пользователя уже занято. Это определенно в категории «ошибка клиента». Вместо того, чтобы рассматривать «ошибку клиента» как «есть ошибка», лучше думать о том, что «по той или иной причине запрос не выполнен, и клиент должен внести исправление».

Типичный код ошибки для этой конкретной ситуации может быть 409 Conflict.

Если вы отправили обратно 200, клиент должен воспринимать результат как "Мой запрос успешно выполнен", что здесь определенно не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...