如何保持第三方API与我自己的数据库之间的一致性?

时间:2016-05-03 16:58:56

标签: c# .net api rest transactions

我正在使用REST API并具有以下方案来处理付款请求:

  1. 客户端将请求(付款信息)发送到我自己的API。
  2. 我的API调用第三方REST API,传递付款信息,并从中接收付款ID。如果第三方API调用因任何原因失败,则会立即将错误返回给客户端。
  3. 我的API将步骤2中生成的付款ID和一些额外信息存储到自己的数据库中。
  4. 我希望第三方API和我自己的数据库之间的数据保持一致。但是,如果由于某种原因在步骤3中无法访问数据库,我最终会得到不一致的数据 - 付款将存在于第三方API中,但不存在于我自己的API数据库中。

    处理此一致性问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:-1)

@Gusman谈到如果步骤3无法完成,如何允许步骤2。

TransactionScope允许您在同一笔交易中执行第2步和第3步,即如果无法完成第3步,则取消第2步。