Architecture 集成外部产品类别API

Architecture 集成外部产品类别API,architecture,asp.net-web-api,b2b,Architecture,Asp.net Web Api,B2b,在我工作的公司里,我们经营一个比较网站。我们的产品是我们从内部和外部来源比较的服务 我的问题是,我们有一个后端CMS风格的管理系统,经理和产品管理员可以添加、删除和修改产品 当一家新的第三方公司出现并希望成为我们服务的一部分时,我们基本上会放弃他们所有产品的api,并将其保存在我们的数据库中,只将定价和服务可用性委托给他们的api以获得实时数据 这样做的好处,也是我们这样做的唯一原因,是允许我们的产品管理团队明确控制产品的佣金设置和可用性,即:我们可以关闭它,防止它通过我们的api和Web服务/

在我工作的公司里,我们经营一个比较网站。我们的产品是我们从内部和外部来源比较的服务

我的问题是,我们有一个后端CMS风格的管理系统,经理和产品管理员可以添加、删除和修改产品

当一家新的第三方公司出现并希望成为我们服务的一部分时,我们基本上会放弃他们所有产品的api,并将其保存在我们的数据库中,只将定价和服务可用性委托给他们的api以获得实时数据

这样做的好处,也是我们这样做的唯一原因,是允许我们的产品管理团队明确控制产品的佣金设置和可用性,即:我们可以关闭它,防止它通过我们的api和Web服务/站点显示

一个明显的缺点是,如果api上有新产品可用,或者即使我们期望更改的产品,我们也有更多的失败点要覆盖,我现在面临的主要问题,也是写这篇文章的原因是,我们有一些新的集成产品即将上市,并且有很多产品,要将它们全部纳入我们的系统是不可行的

我的问题是其他人是如何处理这种产品目录集成场景的

谢谢,
G

如果我理解正确,您有两种不同的选择加上一些混合动力车

基于api的解决方案:假设所有合作伙伴的api产品、数量、功能、价格等大致相同。然后为每个合作伙伴创建一个转换器/适配器/反腐败层,将其对象导入到模型中。有时,你的伴侣可能会被要求为他们做一些工作。这可能是最简单但也很危险的方法,因为您可能会遇到具有完全不同且不可转换模型的合作伙伴。例如,一些拍卖门户没有“物品”的概念,只有拍卖/描述。可能没有“数量”之类的内容,只有“合作伙伴商店的可用性”。此外,价格可能不是固定的,但取决于当前的拍卖状态或飞机票的受欢迎程度。因此,当您遇到这样的模型时,可能无法将其插入到您的系统中

类似爬虫的解决方案:您几乎完全忽略了合作伙伴的api。相反,你只是放弃他们的网站,为你的客户提供全文搜索。这样,您就不会有任何兼容性问题,但也不会有结构化数据


混合:您可以使用爬虫方式并使用任何现有api获取任何所需的结构化信息价格等。您可以使用机器学习方法从废弃数据中检索所需的信息。

您可以更具体一些吗?为什么不可行?您的应用程序对来自N个客户端的数据进行索引并显示它们。问题到底是什么?问题是他们的数据与我们的不匹配,而且他们的搜索/购买过程通常与我们已经构建的不同。目前,集成这些外部目录的唯一方法是从字面上刮取它们的API以获得产品/服务的每个可能组合,并将其转储到我们的数据库中。这很麻烦,因为他们的数据并不总是容易映射。我想知道是否有一种模式或体系结构风格允许我实时使用他们的API,并且仍然保持对可用内容的控制?