Теперь я должен просто вернуть новый идентификатор в качестве возвращаемого значения в ответе
или новый идентификатор установить во входном запросе и вернуть всю сущность? {
«Id»: 1234, «name»: «г-н Вудс »,« возраст »: 29}
Успешный запрос Rest POST
не обязательно должен иметь тело ответа, в общем, если это точно те же данные, которые указаны в запросе + созданный идентификатор.
Ответ 201 Created
, содержащий в location header
URI созданного ресурса, выглядит нормально.
Это не означает, что запрещено указывать тело в ответе POST, просто вы должны устанавливать его только в том случае, если это добавляет какую-то дополнительную ценность для клиента.
Например, предположим, что создание ресурса может изменить данные, предоставленные клиентом (очистка, вычисления и т. Д.), Может иметь смысл установить ресурс в ответе тела.
Кроме того, когда запрос попадает в список POST / пользователей, но ему уже предоставлен идентификатор
во входных данных, мы должны проверить, чтобы это было нулевым, прежде чем
создаете новый? Каким будет код ответа Http в этом случае
когда идентификатор существует на входе?
Это зависит от того, как вы хотите, чтобы ваши службы отдыха вели себя:
- Либо вы решаете, что обновление разрешено с помощью
POST
: в этом случае, если идентификатор null
, вы создаете ресурс, а если нет null
, вы обновляете ресурс, и если все в порядке, вы можете возврат 202 Accepted
.
- Или вы решаете, что обновление не разрешено с
POST
: в этом другом случае, если идентификатор не null
, вы возвращаете ответ об ошибке, такой как 400 Bad Request
.