【发布时间】:2018-11-04 12:13:46
【问题描述】:
我有两个具有不同资源的 API:
-
www.api-A.com**/consumers,返回:
{consumers: ['mike', 'Anna', 'Danilo']} -
www.api-B.com**/clients,返回:
{clients: ['Jack', 'Bruce', 'Mary']}
我想在一个控制器中使用这两个结果。我想像只有一个一样对待他们。
我是否必须为每个 api 创建一个包装器,例如:
module ApiAWrapper
#code here
end
module ApiBWrapper
#code here
end
并在我的控制器中调用以下内容?
MyController
def index
@clients << ApiAWrapper.most_recent
@clients << ApiBWrapper.most_recent
@clients
end
end
这样做,@clients 将是:
['mike', 'Anna', 'Danilo', 'Jack', 'Bruce', 'Mary']
这是使用这些具有相似响应的不同 API 的正确方法吗?是否有我可以使用的设计模式或者我应该阅读以指导我?
【问题讨论】:
-
重复项呢?
-
有时每个api的响应可能不同。但我也想避免重复。因为我不能拥有两个 Wrapper APi,而是 3 个,我们的 5 个或更多。
-
由于您的目的,这可能不是正确的评论。如果那我道歉。 :-) 定义类怎么样?支持那些类似于模型的资源。或者看看这个宝石。 github.com/remiprev/her#multiple-apis 我想如果你必须打电话给
3 our 5 or more它将是连续的并且可能会影响响应。
标签: ruby-on-rails api design-patterns