Swagger
2026년 5월 17일
- NestJS는 의존성 주입(Dependency Injection)이 명확하기 때문에 swagger를 사용하여 api 문서를 빠르게 생성할 수 있다.
Swagger 설치 및 설정
- 아래 명령어를 통해 두개의 모듈을 설치한다.
Bashyarn add @nestjs/swagger swagger-ui-express
- main.ts 설정의 SwaggerModule.setup()을 설정한다.
TypeScript
- 설정을하게 되면 컨트롤러(Controller)의 핸들러(Handler)들을 자동으로 감지하여 api 문서를 만들게 된다.
Swagger 데코레이터(Decorator)
컨트롤러(Controller)
- @ApiTag()를 사용하여 api를 그룹화할 수 있다.
- @ApiOperation()를 사용하여 api에 대한 보충설명한다.
- @ApiQuery()를 사용하여 쿼리스트링(Querystring)를 보충설명한다.
- @ApiParam()를 사용하여 URL 파라미터(URL Parameter)를 보충설명한다.
- @ApiResponse()를 통해 응답 객체(Object)와 HTTP 응답 상태(status)를 정의할 수 있다.
엔티티(Entity)
- @ApiProperty()를 사용하여 DTO(Data Transfer Object)의 속성(Property)들에 대한 보충설명을 하고 엔티티(Entity)에 붙이는 것이 이후 DTO(Data Transfer Object)를 서언할 때, 그래도 적용되어 편하다.