В моей модели ресурсов у меня есть ресурс "подписка". Он проходит через состояния жизненного цикла, такие как «неподписанный» -> «ожидающий подписки» -> «подписанный» -> «ожидающий отписки» -> «отписанный».
Чтобы разрешить клиентам подписываться или отписываться от подписки, я планирую выставить два ресурса контроллера (называемые «sub» и «unsub») для подписки / отмены подписки, каждый из которых принимает запросы POST, которые синхронно помещают целевую подписку. перевести ресурс в соответствующее состояние «ожидание» и асинхронно выполнить дополнительную работу, чтобы перевести подписку в состояние «подписка» или «отказ от подписки».
Я могу подумать о нескольких способах назначения клиентом целевой подписки при отправке запроса POST на «sub» или «unsub». Я мог бы поместить целевой идентификатор подписки в URI, например так:
/ подписки / {subscription_id} / суб
или, может быть
/ Суб / {subscription_id}
[Примечание. Предоставление идентификатора подписки в URI не представляет проблемы безопасности для моего приложения.]
Или я мог бы сделать идентификатор подписки параметром POST для:
/ суб
Мысли о том, какой подход предпочтительнее? Если вы предпочитаете подход URI, какой стиль URI вам больше нравится и почему?
Примечание: подписка, которая была отписана, впоследствии может быть повторно подписана, поэтому действие «отписаться» не эквивалентно удалению ресурса подписки.