【问题标题】:Which function in "nestjs/swagger" converts DTOs to Swagger model definitions?“nestjs/swagger”中的哪个函数将 DTO 转换为 Swagger 模型定义?
【发布时间】:2020-03-25 12:41:26
【问题描述】:

我使用Class-Validator 指定了 DTO,我正在寻找一个可用于从中生成 Swagger 规范的库。我没有将它用于 REST API,代码正在解决 IoT/MQTT 场景 - 我只是使用 Class-Validator 来管理 JSON。

NestJS/Swagger 是维护最好的库。我想使用它的能力在没有 NestJS 服务器的情况下生成 Swagger 定义。理想情况下,我想传入一个 DTO 定义并获得它的 Swagger 模式。

我一直在阅读源代码,但很难理解框架中的哪个函数实际上是这样做的。充其量,我已经能够追踪到modelsDefinitions property in swagger-explorer class

据我所知,api-parameters.explorerapi-produces.explorer。我不清楚他们的工作方式。我想知道有人可以帮助我吗?

我想补充一点,我知道class-validator-jsonschema,但它没有得到维护,似乎不再正常工作。

【问题讨论】:

  • index.ts 导出的主模块好像是 github.com/nestjs/swagger/blob/master/lib/swagger-module.ts ,好像用到了 fastify-swagger 和 swagger-ui-express 等库以及一堆自定义代码。您是否有机会查看该代码以及它如何与标准 Nest 项目一起使用?
  • 是的,我试图追踪 swagger-module 调用了哪些代码,结果卡在了上面的大纲中。我认为 Swagger ui 和 fastify 与构建模型无关。

标签: node.js json typescript swagger nestjs


【解决方案1】:

nestjs/swagger 不会将您需要的内容公开为您无法访问的公共 API。您要查找的类是SchemaObjectFactory,方法是exploreModelSchema

参考:

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 2021-11-09
    • 1970-01-01
    • 2021-12-20
    • 2021-11-27
    • 2022-08-02
    • 1970-01-01
    • 2019-11-06
    • 2022-09-24
    相关资源
    最近更新 更多