[NestJS] 잡담

Younghwan Cha·2023년 8월 21일
0

Nest.js

목록 보기
21/27

custom decorator 에 대한 swagger 처리를 해야하나?

  @Get(':id')
  @ApiParam({ name: 'id', description: 'user id' })
  ...
  
  async listCourt(
    @User() user: UserModel,
    @Param('is') is: string,
  ): 

위에 코드를 보면서 문득 의문이 들었다.

User 는 custom param 인데 @ApiParam 으로 잡아야하나?

참고로 @User()createParamDecorator() 를 통해서 만든 custom Param decorator 이다. 결론은 그럴 필요 없다
이에 대한 설명으로는 똑똑이 gpt 선생의 대답으로 대신하겠다.

커스텀 데코레이터를 사용하는 경우에는 @ApiParam()을 사용하지 않습니다. @ApiParam()은 경로 매개변수에 대한 문서화를 위한 것이며, 커스텀 데코레이터의 경우 해당 데코레이터 자체가 로직을 가지고 있기 때문에 @ApiParam()을 추가할 필요가 없습니다.
다시 말씀드리면, 커스텀 데코레이터를 사용한 경우에는 해당 데코레이터가 요청 객체를 가공하거나 특정한 로직을 수행하도록 구현되었다면 @ApiParam()은 필요하지 않습니다. 커스텀 데코레이터를 사용하는 경우 컨트롤러 메서드의 파라미터에 대한 Swagger 문서화는 해당 데코레이터를 사용한 파라미터 자체를 문서화해야 합니다.
정리하자면, 커스텀 데코레이터를 사용할 때에는 별도로 @ApiParam()을 추가하지 않아도 됩니다. 커스텀 데코레이터에 대한 문서화는 해당 데코레이터를 사용하는 컨트롤러 메서드의 파라미터에 대한 문서화를 통해 이루어집니다.

profile
개발 기록

0개의 댓글