Я хочу выполнить два запроса POST к двум разным конечным точкам, возможно ли это сделать транзакционным способом?
Нет.
Нет правила, что говорит, что влияние POST будет ограничено только одним ресурсом. В Интернете мы можем отправить одну форму HTML, которая изменяет несколько страниц. Реализации имеют большую свободу при обработке запроса (HTTP ограничивает значение сообщения, а не реализации обработчика).
POST / replace / these / resources / with / empty / documents Content-Type: text / plain
/ A / B / C / D / E / F? G
Однако отсутствует возможность сообщать компонентам общего назначения, какие ресурсы были изменены при обработке запроса POST. Механизм, описанный RF C 7234 , обрабатывает только несколько простых случаев и не распространяется (насколько я могу судить) в целом.
Вы получаете не более трех
- эффективный uri запроса
- Location
- Content-Location
и как Location, так и Content-Location означает что-то, так что вы можете получить беспорядок, если попытаетесь заставить их выйти из их нормальной семантики.
Вы, конечно, можете отправить ответ, который включает в полезную нагрузку список всех ресурсов, которые были изменены вашей транзакцией (если это возможно), но у вас нет никакого способа перенести эту информацию в метаданные, где ее смогут использовать компоненты общего назначения.