говорят, что у нас есть ресурс пользователя с уникальным ограничением на "имя". как бы вы проектировали REST API для работы с приложением для поиска или создания (по имени)? Я вижу следующие варианты:
вариант 1: несколько запросов
клиент:
POST /user
{"name":"bob"}
Сервер:
HTTP 409 //or something else
клиент:
GET /user?name=bob
Сервер:
HTTP 200 //returns existing user
вариант 2: один запрос, два кода ответа
клиент:
POST /user
{"name":"bob"}
сервер:
HTTP 200 //returns existing user
(в случае, если пользователь фактически создан, вместо этого верните HTTP 201)
вариант 3: запрос ошибок, но данные ответа содержат конфликтующий объект
клиент:
POST /user
{"name":"bob"}
Сервер:
HTTP 409 //as in option1, since no CREATE took place
{"id": 1, "name":"bob"} //existing user returned