develop/Nest.js
[Nest.js] swagger 데코레이터 - 2 (응답 데코레이터)
hsleeee
2024. 12. 29. 17:05
반응형
SMALL
1. @ApiResponse()
- 용도: 모든 유형의 API 응답을 정의할 수 있는 일반적인 데코레이터
@ApiResponse({
status: 201, // HTTP 상태 코드
description: '게시글 생성 성공', // 응답 설명
type: PostResponseDto, // 응답 타입 (DTO)
schema: { // 복잡한 응답 스키마 정의 시
example: {
id: 1,
title: '제목',
content: '내용'
}
}
})
2. @ApiOkResponse()
- 용도: 200 성공 응답 정의
@ApiOkResponse({
description: '게시글 목록 조회 성공',
type: PostListResponseDto,
isArray: true // 배열 응답인 경우
})
3. @ApiCreatedResponse()
- 용도: 201 생성 성공 응답 정의
@ApiCreatedResponse({
description: '새 게시글 생성 완료',
type: PostResponseDto,
schema: {
example: {
id: 1,
createdAt: '2024-01-01T00:00:00Z'
}
}
})
4. @ApiZBadRequestResponse()
- 용도: 400 잘못된 요청 응답 정의
@ApiBadRequestResponse({
description: '잘못된 입력값',
schema: {
example: {
statusCode: 400,
message: ['title must not be empty'],
error: 'Bad Request'
}
}
})
5. @ApiUnauthorizedResponse()
- 용도: 401 인증 실패 응답 정의
@ApiUnauthorizedResponse({
description: '인증 실패',
schema: {
example: {
statusCode: 401,
message: 'Unauthorized'
}
}
})
6. @ApiForbiddenResponse()
- 용도: 403 권한 없음 응답 정의
@UseGuards(RolesGuard)
@ApiForbiddenResponse({
description: '접근 권한 없음',
schema: {
example: {
statusCode: 403,
message: '이 작업에 대한 권한이 없습니다.'
}
}
})
반응형
LIST