[我认为我了解立面设计模式的目的-为客户端提供一个接口,以简化和抽象一个复杂的系统,使他们可以更轻松地执行特定任务。
但是我想到的第一件事是微服务样式系统,其中包含许多api,每个api具有特定的目的和功能。
[如果我创建另一个API(微服务),该API代表客户端对其他两个API进行调用,并将多个API调用抽象为一个调用,则简化了API的特定用法,使客户端更容易使用做某事,那也是门面吗?
或者也许Facade不会调用API,而是导入其他API使用的模块以获取其功能?
我想知道“ facade”在这里是否正确,或者在复杂系统中是否存在用于抽象多个REST API调用的更具体的模式。
是的,
API网关/前端的后端
API网关,它是所有客户端的单个入口点。 API网关以两种方式之一处理请求。某些请求仅被代理/路由到适当的服务。它通过扇出多个服务来处理其他请求。
此模式的一种变体是“前端的后端”模式。它为每种客户端定义了单独的API网关。
Thoughtworks建议GraphQL for server-side resource aggregation作为抽象多个REST API调用的一种模式。它符合公认的答案中提到的BFF模式。