在 NestJS 应用程序的项目根文件夹中创建 swagger.yaml 文件

Create swagger.yaml file in the project root folder for NestJS application

我正在使用 NestJS 创建一个 BE 应用程序,我使用以下语法使用 swagger 模块启用了 swagger

const document = SwaggerModule.createDocument(app, config);  
SwaggerModule.setup('api', app, document);

我的问题是有没有办法将文档 convert/save 作为根文件夹中的 .yaml 文件?这样 GitLab 存储库上的任何成员都可以在没有 运行 应用程序的情况下查看应用程序的 API 和 DTO。

我找到了使用 json-to-pretty-yaml 包的解决方案,所以现在我可以使用 YAML.stringify(document) 将文档转换为字符串 yaml,然后将输出保存到 .yaml 文件。

    import * as fs from 'fs';
    import * as YAML from 'json-to-pretty-yaml';
    ....
    ....
      const document = SwaggerModule.createDocument(app, config);
      SwaggerModule.setup('api', app, document);
    
      const data = YAML.stringify(document);
      fs.writeFile("swagger.yaml", data, (err) => {
        if (err)
          console.log(err);
        else {
          console.log("swagger.yaml file has been updated successfully\n");
        }
      });