系统集成:哪个系统通常在集成中存储 ID?
System Integration: Which system typically stores ids in an integration?
我和另一位开发人员正在集成两个系统,这两个系统对客户来说是私有的,并且具有重复的功能,因此我们希望节省用户将相同数据输入到两个系统的时间。他的系统运行在客户站点的本地主机上,而我的系统运行在云端,所以我们计划让我的系统公开一个 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 更好,但我正在努力解释原因。
他的系统更大,功能更多。他也是一名全职员工,而我的合同即将到期,届时他将需要承担更多责任来管理我的系统。
我会说负责数据的系统(“主”)是应该创建 ID 的系统(例如,为了避免重复,或者不为已取消的创建预订 ID)
此外,第二个选项看起来更像是一个 REST POST 请求,它现在是理解 API
的一种标准
*** 经过评论讨论:***
如果下一阶段是主系统拥有所有数据,请考虑到这一点来设计解决方案。
选择选项 1,不要在主系统(尤其是数据结构)上进行集成,稍后您必须将其从那里删除。
此外,您描述的交换看起来像是一种单向复制。在这种情况下,我认为目标表上的“来源”或“参考”列是最好的方法,尤其是当主系统必须在其他系统上进行复制时。
我和另一位开发人员正在集成两个系统,这两个系统对客户来说是私有的,并且具有重复的功能,因此我们希望节省用户将相同数据输入到两个系统的时间。他的系统运行在客户站点的本地主机上,而我的系统运行在云端,所以我们计划让我的系统公开一个 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 更好,但我正在努力解释原因。
他的系统更大,功能更多。他也是一名全职员工,而我的合同即将到期,届时他将需要承担更多责任来管理我的系统。
我会说负责数据的系统(“主”)是应该创建 ID 的系统(例如,为了避免重复,或者不为已取消的创建预订 ID)
此外,第二个选项看起来更像是一个 REST POST 请求,它现在是理解 API
的一种标准*** 经过评论讨论:***
如果下一阶段是主系统拥有所有数据,请考虑到这一点来设计解决方案。 选择选项 1,不要在主系统(尤其是数据结构)上进行集成,稍后您必须将其从那里删除。
此外,您描述的交换看起来像是一种单向复制。在这种情况下,我认为目标表上的“来源”或“参考”列是最好的方法,尤其是当主系统必须在其他系统上进行复制时。