gpt4 book ai didi

swagger - 在不运行 nest js 服务器的情况下生成 swagger json 文件

转载 作者:行者123 更新时间:2023-12-02 01:33:57 25 4
gpt4 key购买 nike


有谁知道无需运行 nest js 服务器即可生成 swagger json 文件的方法(官方或通过第 3 方工具)?

我有一个带有 Controller 路由和 DTO 的嵌套 js 应用程序,这些应用程序用 @nest/swagger 装饰器注释用于文档。我知道我可以通过启动服务器并访问/api-json 来获取 swagger json 文件,但我需要能够生成此文件而无需先启动服务器。

最佳答案

我设法在不启动服务器的情况下从我的端到端测试生成了一个 swagger 文件。

下面的代码在 *.json 文件中生成一个 swagger 规范,您可以将其粘贴到 https://editor.swagger.io/

// my-api.e2e-spec.ts

import { Test, TestingModule } from '@nestjs/testing';
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import { HttpModule } from '@nestjs/axios';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import * as fs from 'fs';

describe('My E2E Tests', () => {
let app: NestFastifyApplication;

beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [HttpModule],
}).compile();

app = module.createNestApplication(new FastifyAdapter());
app.setGlobalPrefix('/api/v1');
await app.init();
await app.getHttpAdapter().getInstance().ready();
});

afterAll(async () => {
await app.close();
});

it('should generate swagger spec', async () => {
const config = new DocumentBuilder().setTitle('My API').setDescription('My API').setVersion('1.0').build();

const document = SwaggerModule.createDocument(app, config);
fs.writeFileSync('./swagger.json', JSON.stringify(document));
});
});

注意:我的package.json中@nestjs/swagger的版本是5.2.0

关于swagger - 在不运行 nest js 服务器的情况下生成 swagger json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72852736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com