首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >生成swagger json文件而不运行nest服务器

生成swagger json文件而不运行nest服务器
EN

Stack Overflow用户
提问于 2022-07-04 06:50:00
回答 1查看 644关注 0票数 1

有没有人知道有一种方法(官方的或第三方的工具)可以在不需要nest js服务器运行的情况下生成挥霍无度的json文件?

我有一个带有控制器路由的nest js应用程序,还有一个带有@nest/swagger装饰器的DTO注释文档。我知道我可以通过启动服务器和访问/api-json来获得swagger json文件,但是我需要能够生成这个文件,而不必先启动服务器。

EN

回答 1

Stack Overflow用户

发布于 2022-07-29 20:29:41

我设法在没有启动服务器的情况下从我的e2e测试中生成一个swagger文件。

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

代码语言:javascript
代码运行次数:0
运行
复制
// 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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72852736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档