如何在nestjs中禁用swagger进行生产

Posted

技术标签:

【中文标题】如何在nestjs中禁用swagger进行生产【英文标题】:how to disable swagger for production in nestjs 【发布时间】:2021-08-09 09:00:23 【问题描述】:

我正在将 swagger-ui 添加到我的 nestjs 应用程序中。我需要在生产中禁用这种招摇。我搜索了nestjs文档,没有发现任何有用的东西。我需要一个很好的资源或指导来禁用生产中的招摇。

【问题讨论】:

【参考方案1】:

解决此问题的方法之一如下。将 Swagger 文档相关的代码包装在 if 块“process.env.NODE_ENV !== 'production'”中。

网址:https://nodejs.dev/learn/nodejs-the-difference-between-development-and-production

.evn 文件

MONGO_URI="mongodb://localhost:27017/quotesdb"
NODE_ENV=production

ma​​in.ts 文件

import 'dotenv/config';

import  NestFactory  from '@nestjs/core';
import  DocumentBuilder, SwaggerModule  from '@nestjs/swagger';
import  AppModule  from './app.module';

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

  app.enableCors();

  if (process.env.NODE_ENV !== 'production') 
    const options = new DocumentBuilder()
      .setTitle('Quotes Api')
      .setDescription('Quotes API Description')
      .setVersion('1.1')
      .addTag('quotes')
      .build();

    const document = SwaggerModule.createDocument(app, options);
    SwaggerModule.setup('api/swagger', app, document);
  

  await app.listen(3000);

bootstrap();

【讨论】:

以上是关于如何在nestjs中禁用swagger进行生产的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swagger nestjs 中手动添加摘要和正文

如何使用 nestjs/swagger 更改查询参数序列化?

@nestjs/swagger:如何添加 API URL?

NestJS Swagger - 如何声明多选枚举字段?

@nestjs/swagger:如何在没有 @ApiOkResponse 装饰器的情况下添加架构?

如何在 Nx monorepo 中为 NestJS 和 Angular 之间共享的 API 接口启用 Swagger?