DevBoi

[NestJs] Swagger관련 설정정리 본문

Develop/[NestJs]

[NestJs] Swagger관련 설정정리

HiSmith 2023. 7. 1. 16:55
반응형

스웨거 관련 세팅하는 방법이다.

아래 세가지만 하면, 대충 api 에 대한 스펙 정보는 전달할 수 있다.

더 심화적이고 복잡하게 필요할떄는  구글링을 하면되고, 아래는 기초적인 내용, 보편적으로 90% 커버가능한 것들을 모아 놓는다.

 

1. 스웨거 관련 디펜던시 추가(pacakage.json에 추가)

"@nestjs/swagger": "^6.3.0",
"swagger-ui-express": "^4.6.3",

귀찮으면, npm 으로 @nestjs/swagger 추가하면된다.

 

2. main.ts swagger 진입 정보 및 세팅(main.ts 에 추가 하면된다.)

const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('api', app, document);

 

3.Api 관련 태그 컨트롤러 붙이기

 

1) ApiTags : 컨트롤러 단위로 태깅을 해서 그룹핑이 가능하다.

기타 메소드 단위나, 여러가지 단위로 그룹핑이 가능하도록 태깅이 가능하다.

 

2) ApiOperation : Api에 대한 설명이 가능하다. 뭐 다른 옵션이 더있는지는 모르겠는데, 나는 summary만 쓴다.

 

3) ApiBody, Apiquery : 두가지는 해당 body에 값을 넣거나, 파라미터로 넘겨줄때 사용한다.

나는 사실 거의 바디로 넘겨받기 때문에 해당 내용에 대한 예시를 보여준다.

추가로, dto를 사용하는 경우, 해당 내용으로 가려면 dto내부 프로퍼티에 대해서 별도 데코레이터를 달아줘야한다.(2번째 사진)

 

 

 

결과 - 그룹핑과, requestbody 스펙 노출

반응형