0

另一位开发人员和我正在集成两个系统,这些系统对客户来说是私有的并且具有重复的功能,因此我们希望节省用户将相同数据输入两个系统的时间。他的系统在客户端站点的 localhost 上运行,而我的系统在云上运行,因此我们计划让我的系统公开一个 REST API 供他的系统调用。在很多情况下,他的系统会在我的系统上保存数据。例如,客户记录。

我看到了两个如何工作的选项:

选项 1:他向我的系统发送一个 id 以与新的客户记录相关联 - 例如{client_name: 'Ballmart', id: 'FD23949fsad293fa2'},然后在他想要引用它时发送相同的 id - 例如在添加新订单时:{orderNumber: 2393, clientId: 'FD23949fsad293fa2'}

选项 2:他发送一个没有 id 的客户记录,我用我的 id 响应他的请求。他将我的 id 保存在他的数据库中,并在需要参考客户记录时将其发送过来。所以他会发送{client_name: 'Ballmart'},我会回复{id: 'FD23949fsad293fa2'},然后他会{orderNumber: 2393, clientId: 'FD23949fsad293fa2'}像以前一样发送以记录客户的新订单。

我的预感是选项 2 更好,但我正在努力解释原因。

他的系统更大,功能也更多。他也是一名全职员工,而我的合同即将到期,届时他将需要承担更多管理我的系统的责任。

4

1 回答 1

2

我会说负责数据的系统(“master”)是应该创建 ID 的系统(例如,为了避免重复,或者不为取消的创建预订 ID)

而且,第二个选项看起来更像是一个 REST POST 请求,现在是一种理解 API 的标准

***通过评论讨论后:***

如果下一阶段是主系统拥有所有数据,请考虑到这一点来设计解决方案。选择选项 1,不要在主系统(尤其是数据结构)上进行集成,以后您必须从那里删除它。

此外,您描述的交换看起来像单向复制。在这种情况下,我认为目标表上的“原点”或“参考”列是最好的方法,尤其是当主系统必须在其他系统上复制时。

于 2020-07-21T01:14:41.343 回答