内部和外部服务公开的正确模式

Right Pattern to internal and external Services exposed

我正在构建一项服务(休息服务),它对数据库进行内部调用,然后进行一个外部 Web 服务调用。此服务可用于内部请求并暴露给外部客户调用,我怀疑我是否可以将此服务命名为 Facade 或 Gataway。我确实阅读了有关网关和外观模式的信息,一种是当客户是外部应用程序时,另一种是针对内部应用程序的,所以我没有发现任何关于这两种调用的服务模式。

在许多方面 Gateway/Facade are two sides of the same coin 网关模式将用于简化对您外部的 Web 服务的调用(即提供一致的 API),外观模式将用于提供您自己内部的简化版本 API 给您的客户。

如果您希望您的客户能够像您一样访问外部 Web 服务,您总是可以将简化的外部 API 直接合并到您的外观中。一个更好的解决方案可能是通过使用 command pattern (或类似的)将它与你的内部分离,如果外部 Web 服务 API 出于任何原因添加功能或更改你有一个简单的方法修改您的系统以应对。

我认为没有 一个 模式适用于您的特定用例,您将不得不根据 best/what 为您提供的有效方法来设计您的解决方案最一致、可维护的代码。