4

我正在使用 NSwag 生成我的 TypeScript 客户端(Angular 格式),但由于循环依赖,我在实现 Bearer 令牌身份验证时遇到了问题。

我的用户服务需要导入 TS 客户端以使用令牌 DTO,我的 TS 客户端需要导入用户服务以注入令牌。

因此,我想知道是否可以将生成的文件拆分为两个(或更多)客户端和模型文件。

另一种选择是在 HTTP 请求上实现一个拦截器,但我觉得这很可恶,因为如果我使用另一个 API 可能会导致问题。

4

2 回答 2

1

我们遇到了这个问题,但我们计划反过来做。

  1. 卷曲招摇的文件
  2. 翻阅它并根据标签对其进行拆分
  3. 为每个标签创建本地 swagger 文档
  4. 对每个新创建的 swagger 文档运行 nswag cli

这样我们就不必仅仅因为客户端需要其他东西而改变服务器。

我已经成功地将架构分解为多个架构,每个控制器一个,并通过 nswag 生成新文件。不是最漂亮的代码,但它可以工作。如果有人感兴趣,可以在 github 上发布

于 2021-02-23T09:23:50.313 回答
1

您可以创建单独的 NSwag 配置并运行每个配置。这是目前实现您正在寻找的东西的唯一方法。

这在使用正常约定的构建期间不起作用,并且需要在 proj 文件中进行修改,因为它可能是一个 powershell 脚本来运行 Pre 或 Post 过程。

于 2021-01-20T20:00:40.633 回答