Допустим, у меня есть приложение для планирования поездки, и каждая поездка состоит из ресурсов «пути» (например, представляющих маршрут, который нужно проехать), состоящих из последовательности точек. Я могу CRUD эти ресурсы, используя такие запросы (просто пример):
POST /trips/1234/paths
<Path>
<Point>32,32</Point>
<Point>32,34</Point>
<Point>34,34</Point>
</Path>
DELETE /trips/1234/paths/3
Теперь учтите, что я хочу иметь возможность разделить Путь на два пути. В примере aobve я мог бы выбрать точку (32,34) для разделения, что приведет к двум путям - один заканчивается в этой точке, другой начинается в этой точке. Это означает, что одно действие создает два новых ресурса и одновременно удаляет другое (путь, который был разделен).
Таким образом, если путь в приведенном выше примере был единственным путем в системе, и я разделил его одним вызовом, система теперь будет содержать два новых пути, а исходный будет удален. Пример:
<Path>
<Point>32,32</Point>
<Point>32,34</Point>
</Path>
<Path>
<Point>32,34</Point>
<Point>34,34</Point>
</Path>
Я борюсь с тем, как это будет обрабатываться RESTful. Как обрабатывать вызовы, которые приводят к созданию / изменению / удалению нескольких ресурсов, и сообщать об этом вызывающей стороне?
Я могу определенно разобраться с несколькими вызовами (два POST для создания новых путей и DELETE для удаления оригинала), но я хочу, чтобы это был один вызов.