整洁的架构:网关到网关的通信必须通过用例进行吗?

Clean Architecture: Must gateway to gateway communication go via a use case?

在我的应用程序中,网络实现(特别是 HTTP 请求拦截器)需要存储在本地持久存储中的授权令牌。

现在,遵循干净的架构,网络实现和持久存储都在最外层,即框架层。

可以通过存储库检索访问令牌(其中实现在 gateway/interface 适配器层中,存储库接口在 inner-most/entity 层中。

在我的场景中应该如何控制流程?应该去

  1. 通过用例,因为在环形图中,用例层完全封装了实体层
  2. 通过存储库接口并跳过用例层?

作为 1 的反驳论据,我看到

作为 2 的反驳论点,我看到用例层仅存在于实体和面向用户的界面(控制器、呈现器)之间,而不存在于实体和数据网关之间——这意味着用例层实际上并不存在完全封装实体层,这意味着层的环表示不准确。

据我了解 Clean 架构并在我的应用程序中实现了它,存储库接口始终位于用例层而不是实体层。

此外,如果访问令牌处理不是您的应用程序核心业务逻辑的一部分,我会在适配器层中保留访问令牌处理。