API调用链接

时间:2018-06-19 05:29:31

标签: rest api-design

我有一个用例,其中单个事务包含多个API调用:

  1. invoice服务:api/invoice/createInvoice
  2. ledger服务:api/ledger/createJournal - >使用第1点的发票编号作为参数之一
  3. payment服务:api/payment/disbursePayment - >使用第1点的发票编号和第2点的GL参考清单
  4. 这三个操作必须是原子操作,只要其中一个操作失败,就必须取消先前的事务。问题是,因为我使用3种不同的服务,如果它在操作2(ledger/createJournal)上失败,则操作1(invoice/createInvoice)已在invoice服务中标记为成功(因此,{{1数据库)。

    如何在API链中处理这种情况?我正在考虑创建invoice,但这意味着我必须为每次用于原子调用的API调用创建invoice/cancelInvoice

    谢谢

0 个答案:

没有答案