【问题标题】:Generate openApi DTO's with NestJS without a Controller在没有控制器的情况下使用 NestJS 生成 openApi DTO
【发布时间】:2020-02-28 03:56:36
【问题描述】:

我正在编写一个提供 REST API 的 NestJS 服务,它将一些消息发布到 NATS。我们使用 NestJS 支持来生成 OpenAPI 文档,并从 OpenAPI 文档中生成一个我们导入到客户端的 SDK。这一切都很好,但只有我们代码的 REST API 在 SDK 中。

我们还想做的是让 NestJS 为我们发布到 NATS 的消息的内容包含 DTO。然后我们的 SDK 还会包含这些 DTO 的接口,然后我们的客户端可以将消息内容转换为正确的接口(基于消息主题)。这样一来,事件的发布者就定义了事件的内容,用户不必复制界面,而获得强类型代码。

我尝试将 @Api 装饰器添加到 DTO,但似乎除非在 @Controller 的定义中使用 DTO,否则它不会包含在生成的 openApi 文档中。

我希望有一种方法可以在我的代码中装饰一个“随机”DTO,以便将其包含在 swagger 文档中,进而包含在生成的 SDK 中。有这样的可能吗?

【问题讨论】:

    标签: node.js typescript swagger nestjs openapi


    【解决方案1】:

    您还可以将 extraModels 数组作为 SwaggerDocumentOptions 的一部分传递

    SwaggerModule.createDocument(app, config, {
       extraModels: [.......]
    });
    

    https://github.com/nestjs/swagger/issues/241

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 2019-07-08
      • 2012-08-22
      • 2016-01-02
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多