这种通用REST服务是个好主意吗?

时间:2015-11-22 13:16:58

标签: rest architecture components

我有一个关于特定REST服务设计是否良好的问题。

背景是有一个内部单片系统(将称之为#34;主系统")处理例如顾客。然后是外部组件,其中包含有关人员的其他信息,这些信息可能与主系统中的客户1-1相对应。

目前,没有明确说明这些外部组件中的人/客户是什么类型的数据。 我提出的建议设计是一个REST服务,它公开了一个API,供外部系统调用,以便为组件提供与人员相关的任意数据。 我们的想法是,通过这样做,主系统将有一个地方可以去获取客户/人的外部数据。 此REST服务的建议要求是,当外部组件将新类型的数据加载到其中时,该数据将自动由服务访问,而无需以任何方式进行更改或重新部署。并且"新数据"通常表示一种新类型的键值集。例如。最初,该服务可能为customerId标识的客户提供数据。然后外部组件决定发布与SSN相关联的某种数据。这应该会自动通过在请求中提供SSN来查询服务。

为了避免更改/重新部署服务的需要,我假设解决方案将具有非常通用的参考方案,例如, http://url/generic-resource-name/?id=[customerId]&keyType=cusomterId 在要求中实际上没有任何内容限制与一个人相关联的数据,只是它的关键是由一个值组成。

示例用例序列可以是: enter image description here

所以对于这个问题: 实施这样的通用服务是一个好主意吗?它如何与REST的原则押韵:服务将在其上运行的名词必须非常通用,真的没有“资源”或“数据”,这本身就像是一种嗅觉。

1 个答案:

答案 0 :(得分:0)

  

所以问题是:实施这样的将军是一个好主意   目的服务?

我不相信。你将直接进入Inner platform effect antipattern。你必须非常小心,或者你可能会像Vision那样结束。

还请阅读章节"分布式对象的吸引力"来自福勒的PoEAA book。要小心。