Обходной путь для большего количества глаголов REST
Я занимаюсь разработкой игрового сайта, где есть аккаунты с персонажами. Я использую маршруты:
account/{action} //execute `action` on the current account
character/{name}/{action} //execute `action` on specific character
Но мне нужно delete
а также undelete
(они удалены), и при использовании формы это правильный путь для delete
, это становится ненужным (не так ли?) раздувать, когда я могу использовать только ссылку GET character/{name}/delete
, Кроме того, нет глагола для восстановления / восстановления.
Какой правильный и простой способ (или оба, если нет идеального способа) обойти это?
2 ответа
Вы могли бы иметь версию RESTful, если в ваших URL вместо существительных есть глаголы, такие как:
character/{name}/achievements or
character/{name}/travels
Чтобы решить проблему с активным / неактивным аккаунтом, вы можете сделать:
GET/PUT account/activity
Уже не успокаивает, в котором вы определяете действие на основе маршрута, а не на основе глагола. Таким образом, создайте новый маршрут, который будет отменен (т. Е. Символ /{имя}/ восстановлен), ваш уже не REST, поэтому другой маршрут не должен иметь значения. Если вы ищете RESTful, тогда маршрут должен оставаться account/{символ}, а глагол определяет действие (то есть GET,PUT, POST DELETE для того же маршрута). Теперь, так как вы на самом деле не удаляете, я бы научился использовать POST (или, возможно, PUT) для обоих, то есть для обновления сущности для удаления (или неактивности), или для ее обновления до отмены (снова активной)