gpt4 book ai didi

api - 在现有 API 中使用多个第三方 API 的最佳实践

转载 作者:行者123 更新时间:2023-12-05 04:43:07 27 4
gpt4 key购买 nike

我正在尝试找出设计以下场景的最佳方法。

假设我已经有了一个 REST API 实现,它将从不同的供应商那里获取书籍并将它们返回给我自己的客户端。

  1. 每个供应商都提供单独的 API 来向其消费者提供图书。
  2. 每个提供商的响应结构都与前一个提供商完全不同。
  3. 我的客户端应该始终获得完全相同的格式,以便前端客户端应用程序可以处理响应。

一些输出示例:

提供商 1

[
{
"bookId": 32,
"bookName": "foo",
"author" : {
"name" : "John",
"surname": "Doe"
},
"publisher": {
"name" : "Foo Books",
"address": "New York"
}
},
...
]

提供商 2

[
{
"publisherCompany": {
"name": "Foo Books",
"position": "New York",
"books": [
{
"id": 32,
"title": "Foo",
"author": {
"name" : "John",
"lastName": "Doe"
}
},
...
]
}
},
...
]

这两个提供程序都输出相同的值,但格式不同。而且有些键是完全不同的。

我正在寻找的是架构设计或设计模式,因此我可以将每个不同的输出映射到我自己的格式。

我过去尝试过的

  • 我已经创建了自己的实体
  • 我为每个消费者提供不同的服务,在获取数据后,我正在实例化我自己的实体并相应地映射响应。
  • 在我的对象(实体)中填充数据后,我将它们传递给转换器函数以将它们转换为所需的输出。

我的问题:

  • 有什么设计模式吗?
  • 是否有关于此场景的术语,以便我进行研究?
  • 您会以哪种方式处理这种情况?
  • 有任何阅读资源吗?

谢谢;)

最佳答案

并非所有东西都必须遵循设计模式或具有名称,只需运用您的知识和常识即可。

在这种情况下,您需要的是:

  • 拥有您自己的领域模型和一个服务层,可以从您的所有提供商处获取数据。
  • 有一个特定的供应商 1 模型模型和一个特定的服务层来处理对供应商 1 的调用以及到您自己的领域模型的映射。
  • 有一个特定的供应商 2 模型模型和一个特定的服务层来处理对供应商 2 的调用以及到您自己的领域模型的映射。

与提供者 1 和提供者 2 相关的服务都应实现相同的接口(interface),该接口(interface)指定您可能需要的额外提供者服务的契约(Contract)。这将是您的域服务层知道和使用的接口(interface)。

这或多或少是您已经拥有的内容,但如果您想给它起个名字,您可以阅读有关六边形架构的内容,它与所描述的解决方案有一些相似之处。我推荐以下文章:

关于api - 在现有 API 中使用多个第三方 API 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69713852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com