У меня есть ресурс ProjectStep в моем приложении, и мне нужно создать конечную точку API, которая будет использоваться для обновления моего ProjectStep, чтобы пометить его как завершенный и создать следующий ProjectStep. В моем REST API я мог бы сделать что-то вроде этого:
PATCH /project-mark/1
POST /project-mark
Но я хотел бы использовать только один запрос, чтобы обновить текущий шаг, создать новый и вернуть только что созданный ProjectStep.
Какой метод вы бы использовали? Запрос PATCH, обновляющий существующий ресурс и возвращающий другой ресурс, не кажется хорошей идеей.
Спасибо
Большое спасибо за ваши ответы;)
Не могли бы вы оценить мой ответ?
@AlesandroGiordano Я сделал это, но у меня пока недостаточно репутации, поэтому мой голос не отображается. Хорошего дня






Используйте запрос PUT, пожалуйста, перейдите по этой ссылке
https://stackoverflow.com/questions/630453/put-vs-post-in-rest
Используйте API PUT в первую очередь для обновления существующего ресурса (если ресурс не существует, API может решить создать новый ресурс или нет). Если с помощью PUT API был создан новый ресурс, исходный сервер ДОЛЖЕН проинформировать пользовательский агент с помощью ответа HTTP с кодом 201 (Создан), а если существующий ресурс был изменен, либо 200 (ОК), либо 204 (Нет содержимого) коды ответа ДОЛЖНЫ быть отправлены, чтобы указать на успешное завершение запроса.
Если запрос проходит через кеш и Request-URI идентифицирует один или несколько кэшированных в данный момент объектов, эти записи СЛЕДУЕТ рассматривать как устаревшие. Ответы на этот метод не кэшируются.
В соответствии с рекомендациями SO, когда вы найдете новый вопрос, на который уже был дан ответ в SO, вы должны пометить этот вопрос как повторяющийся вместо того, чтобы повторно использовать тот же ответ, чтобы заработать очки репутации с усилиями других пользователей ;-)
Я не знаю как это сделать
Под тегами вопроса находится текстовая ссылка «флаг» (рядом с "редактировать" и "поделиться"). Откроется всплывающее окно, в котором вы сможете выбрать правильную причину пометки.
Но это вопрос о том, какой вызов я должен сделать, чтобы что-то сделать, "дубликат" касается разницы между вызовами ... пользователь должен знать запрос PUT, прежде чем
OP спросил, какой метод лучше использовать для определенного действия, потому что он просто не знает всех доступных методов, поэтому ответ в дубликате правильный, потому что он дал OP знания, чтобы самому понять, какой метод использовать для в этом случае (и все будущие). Например, на SO есть множество ежедневных вопросов, которые вызывают ошибку php sintax, поэтому правильным ответом на 99% этих вопросов является объяснение (которые уже существуют годами на SO), чтобы начать понимать, откуда они могут исходить и как их отлаживать.
В любом случае, если у вас действительно нет «дубликата», по крайней мере, вам следует избегать ответа только по ссылке, оставив ссылку в качестве ссылки и добавив четкое и исчерпывающее объяснение, которое охватывает именно проблему, описанную в вопросе.
Чем вы @gp_sflover, вот описание
Как всегда, я читал в спешке и понял, что, возможно, есть другие ответы, которые можно использовать в качестве лучшей ссылки для дубликата (например, как В чем разница между методами HTTP GET, POST, PUT и DELETE), но независимо от уже объясненных пунктов (не мой голос против).
Это больше грамматика, чем фактическое кодирование. Если вы не следуете действительно строгим правилам, вы можете их использовать. Проще говоря, используйте @jreikes, оставив интересный комментарий к вопросу это: терминология, используемая в этом ответе, будет понятна только тем, кому не нужно задавать основной вопрос.