Поведение транзакции для вызовов HTTP-выборки - PullRequest
1 голос
/ 20 июня 2020

Есть ли способ создавать транзакции для группы HTTP-вызовов в javascript?

Я работаю с популярными API-интерфейсами Musi c, и у меня есть серия HTTP-вызовов, которые я хочу выполнить как транзакция, т.е. (Все или ничего).

Например, я создаю список воспроизведения, затем добавляю песни в список воспроизведения. Оба действия не могут быть выполнены с помощью одного запроса, следовательно, требуется несколько запросов. Однако в ситуации, когда создание списка воспроизведения работает, но не удается добавить песни в список воспроизведения, я бы не хотел, чтобы список воспроизведения, созданный на первом этапе, сохранялся, следовательно, необходимо сгруппировать оба вызова в транзакции, где все они проходят, или ничего не происходит.

В приведенном выше сценарии при повторных попытках создается новый список воспроизведения с тем же именем для размещения песен. Это приводит к дублированию списков воспроизведения с тем же именем, но с разной информацией (некоторые пустые, а некоторые с песнями).

1 Ответ

1 голос
/ 20 июня 2020

То, что вы предлагаете, не существует как готовое решение. Лучше всего, если API, который вы используете, предлагает что-то вроде этого. Например, может достичь чего-то похожего с помощью запроса GraphQL, если он есть.

В противном случае вам придется программировать это поведение самостоятельно. Например, пусть пользователь дает название списку воспроизведения и добавляет песни. После отправки вы сначала пытаетесь создать список воспроизведения. Если это удастся, вы продолжите добавлять песни. Если в какой-то момент добавление песни не сработало, вы повторно удаляете список воспроизведения. Эффект net заключается в том, что у вас есть что-то вроде транзакции списка воспроизведения .

...