Я бы добавил к ответу Рафаэля Мюллера, что существует разница между интерфейсом RESTful и механикой реализации.
Что касается интерфейса RESTful, то здесь мои мысли. Допустим, вы обновляете статус проекта с помощью «PUT / project / 123 / status». Будет ли отправляться электронное письмо или нет, это зависит от ценности вашего приложения. Может быть, именно так вы хотите отличаться от своих конкурентов.
Допустим, вы поддерживаете отправку электронных писем, но хотите передать управление клиенту по вызову. Я бы выбрал необязательный заголовок HTTP или необязательный атрибут тела запроса, будь то JSON, XML или что-то еще.
После того, как вы разрешили изменение статуса проекта по электронной почте, я бы посоветовал разработать специальную конечную точку для запуска обновления электронной почты по требованию. Что-то вроде «POST / project / 123 / status / send-email». Таким образом, ваш клиент не станет стрелять себе в ногу: если он забыл отправить электронное письмо во время обновления статуса проекта или просто передумал, он всегда может позвонить «отправить по электронной почте».