본문 바로가기
backend/NestJS

[NestJS]NestJS에서 Swagger 사용법

by BK0625 2023. 5. 3.
반응형

어떤 프로젝트를 하던간에 문서화는 필수다.

 

특히 프로젝트가 크면 클수록 문서화를 해놓지 않는다면 유지보수나 기능확장을 할 때 엄청난 재앙으로 돌아올 확률이 크고 협업함에 있어서도 어려움을 겪는다.

 

NestJS를 통해 api 서버를 개발 할 때 이 문서화의 귀찮음을 어느정도 해결해줄 수 있는 방법이 있다.

 

Swagger란?

Swagger는 API 문서 자동화 도구이다. 그냥 API 코드를 만들고 수정하면서 자연스럽게 API 문서가 생성되고 수정한다. 즉 굳이 따로 시간내서 작성할 필요가 없다는 것이다. 특히 API 문서에서 제일 문제가 되는게 최신화인데(최신화가 되지 않으면 다른 팀원들과의 협업에서 문제가 생길 수 있다.) 이런 문제가 자연스럽게 해결 된다.

 

또 장점은 이 API를 테스트할 수 있는 화면까지 제공한다는 것이다.

 

 

사용방법은 간단한데 위 모듈을 설치해주면 된다.

 

 

그 뒤 main.ts 파일에서 SwaggerModule을 사용해 초기화를 해준다. config에 설정을 넣어주고 createDocument() 메소드를 활용해 제목,설명,버전 등의 속성을 정의해줄 수 있다.

 

이렇게 한 뒤에 @nestjs/swagger에서 제공하는 데코레이터를 사용하면 된다.

 

 

 @ApiOperation({summary:' 게시판 전체 조회'})

 

이렇게 사용하면 일종의 설명을 달아줄 수 있다. 확인을 위해 http://localhost:5000/api 에 접속해보면

 

 

 

 

 

이런 API 문서를 웹페이지에서 볼 수 있다.

 

 

아까의 api를 테스트할 수 있다. (로그인이 안되어 401 에러가 뜬다.) 이런식으로 api를 손 쉽게 테스트 해 볼 수도 있다.

@nestjs/swagger에서는 더 많은 데코레이터들을 제공해 더 많은 정보를 담은 api 문서를 만들 수 있다.

 

 

공부하면서 정리한 내용이니 틀린 내용이 있다면 모든 지적 감사히 받겠습니다:)

반응형