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
}
})
)