5. Nest.js 광부왕 게임 서버 Swagger 적용

2023. 3. 3. 13:21프로젝트/게임 서버 - Nest.js

1. swagger, express-basic-auth 설치

npm install --save @nestjs/swagger
npm install --save express-basic-auth

2. main.ts swagger 적용

* product 서버에서는 관리자만 swagger 접근이 가능하도록 express-basic-auth를 사용하여 비밀번호 설정

import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { SocketIoAdapter } from './adapters/adapters';
import { AppModule } from './app.module';
//추가
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import expressBasicAuth from 'express-basic-auth';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  // 추가 product 서버 일 때 비밀번호 입력 후 swagger 접근 가능 
  if (process.env.NODE_ENV === 'product') {
    app.use(
      ['/docs'],
      expressBasicAuth({
        challenge: true,
        users: { [process.env.SWAGGER_USER]: process.env.SWAGGER_PWD },
      }),
    );
  }
  // swagger 설명
  const config = new DocumentBuilder()
    .addBearerAuth()
    .setTitle('광부왕')
    .setDescription('king-of-mine-worker-back Api')
    .setVersion(process.env.VERSION)
    .build();
  // swagger setup
  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('docs', app, document);
  await app.listen(process.env.PORT);
}
bootstrap();
728x90
반응형