REST api - 我可以在另一个API中调用多个API吗?如果其中一个内部API调用失败,会发生什么?

时间:2017-12-29 15:41:49

标签: rest api

所以我对REST API设计有疑问:

我有多个具有特定行为的REST API,例如更新车辆状态(例如,可用,租用,维护,退役),其进行一些验证以检查车辆当前是否具有任何租用预订,然后更改状态以表示退休等。另一个是记录任何损坏的实例。一旦车辆从租用中返回,这只记录车辆状况的一般评论。另一个从使用中退出车辆(例如生命末期),这复制了其他两个API的逻辑和动作,作为此RETIRE API的一部分。

但是,我想通过更改RETIRE API来调整代码/逻辑的重复,以便在调用此API时调用各个API,这将有助于我需要更改其他API的逻辑并防止我在RETIRE api中复制了这个逻辑。

因此,在当前的API设计中存在错误处理,例如如果特定操作导致错误,则API将回滚事务并向用户显示错误原因,否则提交已更改的数据。这很有效。

但是,如果我在此RETIRE API中调用每个API,我该如何处理错误,例如如果RETIRE API首先调用'DAMAGE API'来记录任何损坏并且成功它将提交数据,但随后'VEHICLE STATUS'API失败它将向用户发送相关错误的响应,但这是在哪里问题是,损坏API已经运行并成功,所以这个数据已经保存了...所以如果用户再次尝试,这次一切都成功,我将在“损坏”部分有重复的数据。

那么,一旦成功返回所有API,我怎样才能提交所有API的数据?或者更好的是让3个API仍然彼此独立,但可能会创建函数并在每个API中调用这些函数,所以如果我改变给定操作的逻辑,他们都会效仿吗?

很抱歉这个故事,但我只想帮助解决我的问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

您的描述表明您希望RETIRE API在DAMAGE API中使用某些逻辑,但不是全部......所以将您要重用的内容分解为内部可以由两个API调用的方法。