我已经从外部文档库生成了swagger.yaml/swagger.json.现在,我想将其作为API文档导入并托管在运行在NestJS上的API平台上.我知道,我们可以从NestJS代码生成和导出swagger,但对我来说,需求是相反的,我们有swagger.json,我们需要在NestJS平台上呈现它,比如https://example.com/docs

推荐答案

如果您已经有一个swagger.json文件,您可以忽略SwaggerModule.createDocumentDocumentBuilder,只将解析后的JSON文件传递给SwaggerModule.setup()


import { NestFactory } from '@nestjs/core';
import { SwaggerModule } from '@nestjs/swagger';
import { readFile } from 'fs/promises';
import { path } from 'join';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  // read the JSON file to string and parse the string to object literal
  const document = JSON.parse(
    (await readFile(join(process.cwd(), 'swagger.json'))).toString('utf-8')
  )
  SwaggerModule.setup('api', app, document);

  await app.listen(3000);
}
bootstrap();

Node.js相关问答推荐

Mongodb - 在数组数组中查找()

SvelteKit应用程序立即退出,没有错误

为什么这个 module.export 函数如果我直接传递它就不起作用,但如果我将它包装在一个匿名函数中就可以工作

错误 node :错误:绑定消息提供 16 个参数,但准备语句需要 15 个

Cloudflare 522 错误 - javascript 客户端连接到 node 服务器

当其中一个端点不工作时,如何使用 axios.all() 调用多个 API?

使用`useLocalStorage`和`useDebounce`时如何解决Next.js中的react-hydration-error

如何在不使用位置运算符 $ 的情况下更新 mongodb 文档中数组中的嵌套文档?

WSL2 上需要脚本运行的 NPM 包的权限被拒绝

将已保存的卡片从条带显示到前端

如何使动态私有IP地址静态?

NodeJs 过滤掉目录异步

`npm install` 以Killed结尾

如何在 Node.js 中逐字节读取二进制文件

我可以通过 JNI 从 Node.js 调用 Java 吗?如何?

什么使用/尊重 .node-version 文件?

通过 POST 请求将数据从 node.js 服务器发送到 node.js 服务器

在 Node 中连接和缩小 JS 文件

如何忽略文件 grunt uglify

Node.js - 判断是否安装了模块而不实际需要它