Skip to content

[BE] swagger가 작성한 코드보다 길어질 때

Jungmin edited this page Dec 14, 2023 · 1 revision

| 작성자 : 정민

문제 🕵️‍♂️

스웨거를 작성하다 기존 코드보다 길어지는 일이 발생했다.

해결 방안 👨‍💻

NestJs에서 제공하는 applyDecorators를 사용해 코드를 정리했다.

applyDecorators는 복수의 데코레이터를 전달받아 하나의 새로운 데코레이터를 전달하는 함수이다.

이전 코드

  @UseGuards(TokenAuthGuard)
  @Patch('/user-info')
  @ApiBearerAuth('Authorization')
  @ApiOperation({
    summary: '유저 프로필 변경',
    description: '유저의 프로필 정보를 변경합니다.(회원 가입 후 최초 로그인 시 무조건 수행해야함).',
  })
  @ApiOkResponse({
    status: 200,
    description: '변경된 정보로 새로운 토큰과 정보를 반환합니다. ',
    type: UserInfoResponseDto,
  })
  @ApiBadRequestResponse({
    status: 400,
    description: '중복된 닉네임이 들어온 경우 (응답 ex. 중복된 닉네임 입니다.)',
    type: String,
  })
  @ApiUnauthorizedResponse({ description: '유효하지 않은 토큰', type: UnauthorizedException })
  async updateUserInfo(
....
 }

정리 후

export const UpdateUserInfoSwagger = () => {
  return applyDecorators(
    ApiBearerAuth('Authorization'),
    ApiOperation({
      summary: '유저 프로필 변경',
      description:
        '유저의 프로필 정보를 변경합니다.(회원 가입 후 최초 로그인 시 무조건 수행해야함).',
    }),
    ApiOkResponse({
      status: 200,
      description: '변경된 정보로 새로운 토큰과 정보를 반환합니다. ',
      type: UserInfoResponseDto,
    }),
    ApiBadRequestResponse({
      status: 400,
      description: '중복된 닉네임이 들어온 경우 (응답 ex. 중복된 닉네임 입니다.)',
      type: String,
    }),
    ApiUnauthorizedResponse({ description: '유효하지 않은 토큰', type: UnauthorizedException })
  );
};
  @UseGuards(TokenAuthGuard)
  @Patch('/user-info')
  @UpdateUserInfoSwagger()
  async updateUserInfo(
....
 }

Lock Festival 🔒

Rules

개발일지

Description

학습 노트

회의록

사전 회의
1주차 회의록
2주차 회의록
3주차 회의록
4주차 회의록
5주차 회의록
6주차 회의록

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고록

1주차 회고록
2주차 회고록
3주차 회고록
4주차 회고록
5주차 회고록
6주차 회고록

스프린트

멘토링 일지

Clone this wiki locally