外观设计模式是否只与 classes/modules 或实际的 API 调用有关?
Is the facade design pattern only concerned with classes/modules or actual API calls too?
我想我理解外观设计模式的目的 - 为客户提供一个接口,简化和抽象一个复杂的系统,让他们更容易地执行特定任务。
但我首先想到的是微服务风格的系统,它有很多 API,每个 API 都有特定的用途和功能。
如果我创建另一个 API(微服务)代表客户端调用其他几个 APIs 并将多个 APIs 调用抽象为一个电话,简化了 API 的特定用法,使客户更容易做某事,这也是一个门面吗?
或者外观不会进行 API 调用,而是导入其他 API 所使用的模块以获取其功能?
我想知道 "facade" 是否是这里的正确模式,或者是否有更具体的模式来抽象复杂系统中的多个 REST API 调用。
是的,
API 前端的网关/后端
API 网关是所有客户端的单一入口点。 API 网关以两种方式之一处理请求。有些请求只是 proxied/routed 到适当的服务。它通过分散到多个服务来处理其他请求。
此模式的一个变体是前端模式的后端。它为每种客户端定义了一个单独的 API 网关。
Thoughtworks 推荐 GraphQL for server-side resource aggregation 作为抽象多个 REST API 调用的一种模式。它符合接受的答案中提到的 BFF 模式。
我想我理解外观设计模式的目的 - 为客户提供一个接口,简化和抽象一个复杂的系统,让他们更容易地执行特定任务。
但我首先想到的是微服务风格的系统,它有很多 API,每个 API 都有特定的用途和功能。
如果我创建另一个 API(微服务)代表客户端调用其他几个 APIs 并将多个 APIs 调用抽象为一个电话,简化了 API 的特定用法,使客户更容易做某事,这也是一个门面吗?
或者外观不会进行 API 调用,而是导入其他 API 所使用的模块以获取其功能?
我想知道 "facade" 是否是这里的正确模式,或者是否有更具体的模式来抽象复杂系统中的多个 REST API 调用。
是的,
API 前端的网关/后端
API 网关是所有客户端的单一入口点。 API 网关以两种方式之一处理请求。有些请求只是 proxied/routed 到适当的服务。它通过分散到多个服务来处理其他请求。
此模式的一个变体是前端模式的后端。它为每种客户端定义了一个单独的 API 网关。
Thoughtworks 推荐 GraphQL for server-side resource aggregation 作为抽象多个 REST API 调用的一种模式。它符合接受的答案中提到的 BFF 模式。