Nest.js (7) Swagger

Seong·2022년 11월 23일
0

Nest.js

목록 보기
7/9

Swagger란?

API를 자동으로 문서화 해주는 오픈소스 프레임워크

스웨거 패키지 설치

npm i @nestjs/swagger swagger-ui-express

main.ts에 스웨거 입력하기

  const config = new DocumentBuilder()
    .setTitle('firit nest')
    .setDescription('첫 nest.js 연습')
    .setVersion('1.0')
    .build();
    const document = SwaggerModule.createDocument(app, config);
    SwaggerModule.setup('docs', app, document); //endPoint

/docs로 들어가면


API를 띄워준다

@Apioperation을 사용하면 API에대한 설명이 가능하다.
controller.ts

  @ApiOperation({summary:"회원가입"})
  @Post('')
  createUser(@Body() userDTO: UserDTO) {
    return this.authService.createUser(userDTO);
  }

@ApiProperty로 API에 보내야할 Body값도 설명할 수 있다.
user.dto.ts

@ApiProperty({
  example: '유저네임',
  description: "userName",
  required:true,
})

@ApiResponse로 Reponse값에대한 설명도할 수 있다.

@ApiResponse({
  status:200,
  description:"성공!",
  type:UserDTO
})
@Post('')
createUser(@Body() userDTO: UserDTO) {
  return this.authService.createUser(userDTO);
}

보안설정

인증용 라이브러리 설치

npm i express-basic-auth

express용이지만 nest.js에서는 express도 호환이된다

  app.use(
    ['/docs','/docs-json'],
    expressBasicAuth({
      challenge:true,
      users:{
        ['swagger']:process.env.SWAGGER_PASSWORD
      }
    })
  )
profile
메모장

0개의 댓글