Встречается на собеседованиях • сегодня

Что входит в одну транзакцию в REST API

В REST API транзакция обычно означает атомарную операцию, которая либо полностью выполняется, либо полностью откатывается. Однако REST по своей природе stateless, поэтому полноценные транзакции не поддерживаются на уровне протокола.

Ключевые моменты:

  • Каждый HTTP-запрос считается отдельной транзакцией
  • Для обеспечения атомарности нескольких операций нужны:
    • Идемпотентные методы (PUT, DELETE)
    • Компенсирующие транзакции
    • Паттерны типа Saga

Пример с частичной эмуляцией:

python
# Псевдокод для эмуляции транзакции
try:
    res1 = requests.put('/accounts/1', json={'amount': -100})  # Снятие
    res2 = requests.put('/accounts/2', json={'amount': 100})   # Зачисление
    
    if res1.status_code != 200 or res2.status_code != 200:
        raise Exception("Transaction failed")
except:
    # Компенсирующие действия
    requests.put('/accounts/1', json={'amount': 100})  # Возврат

Для настоящих транзакций лучше использовать специфичные API или GraphQL с мутациями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы