我有一个Spring应用程序,我需要调用许多不同类型的后端系统(遗留大型机,ESB,RESTful ......)。如果我们采取例如REST,我可以用例如REST实现一个RESTful客户端RestTemplate。我可以A)开发人员直接使用RestTemplate客户端,他们传递服务url和dataobject。或者我可以B)将RestTemplate包装在我们自己的后端特定客户端中,并提供开发人员可以使用的显式方法。然后这些方法本身会使用RestTemplate并进行显式的后端调用。
A)的好处是后端系统的变化不需要改变客户端。缺点是我们不隐藏架构。 B)对于开发人员来说更清晰,更容易管理"但是对后端系统的更改要求我们更新所有想要使用新后端功能的应用程序。更糟糕的是,后端系统功能的改变可能需要更新所有服务。
尽管如此,我个人倾向于选项B),因为它为开发人员提供了如此良好的业务逻辑和架构服务分离。
答案 0 :(得分:0)
如果客户想要使用新功能或API由于更改而中断,我不明白您是如何得出客户不需要更新(选项A)的结论。
我认为选项B更好。但我会使用HTTP客户端Feign来创建请求模板,然后发布接口。这样您甚至不必包装RestTemplate并手动实现每个请求。