반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- BFS
- dp
- TCP
- 그래프
- javascript
- dfs
- 레벨 1
- HTTP 완벽 가이드
- 문자열
- 프로그래머스
- Node.js
- 백준
- 수학
- Algorithm
- socket
- type challenge
- 쉬운 문제
- 소켓
- 가천대
- Nestjs
- HTTP
- typescript
- ip
- 타입스크립트
- 알고리즘
- 프로그래머스 레벨 2
- Crawling
- 자바스크립트
- 타입 챌린지
- 크롤링
Archives
- Today
- Total
kakasoo
NestJS 스웨거에서 에러 스키마 작성하기 본문
반응형
import { SchemaObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
export const ERROR = {
ALREADY_CREATED_EMAIL: { code: 4001, message: '이미 생성된 이메일입니다.' },
NO_AUTH_TOKEN: { code: 4002, message: '인증이 필요합니다.' },
IS_SAME_POSITION: { code: 4003, message: '이미지의 정렬 값이 동일한 경우가 존재합니다.' },
} as const;
type KeyOfError = keyof typeof ERROR;
type ValueOfError = (typeof ERROR)[KeyOfError];
export const createErrorSchema = (error: ValueOfError): SchemaObject => {
return {
type: 'object',
properties: {
code: { type: 'number', example: error.code },
message: { type: 'string', example: error.message },
},
};
};
@ApiOperation({ summary: '230129 - 게시글 조회 (incompleted)' })
@ApiOkResponse({ type: GetOneArticleResponseDto })
@ApiBadRequestResponse({
description: '이미지들 중 position이 null이 아니면서 동일하게 배정된 경우',
schema: createErrorSchema(ERROR.CANNOT_FINDONE_ARTICLE),
})
@ApiParam({ name: 'id', description: '조회하고자 하는 게시글의 id 값' })
@Get(':id')
async getOneDetailArticle(@UserId() userId: number, @Param('id', ParseIntPipe) articleId: number) {
const article = await this.articlesService.getOneDetailArticle(userId, articleId);
return article;
}
ERROR 객체에 미리 키 밸류로 에러 내용을 저장했다고 가정하자.
저런 객체 구조라면 아래의 createErrorSchema 함수를 이용해서 쉽게 schema를 표현해줄 수 있다.
반응형
'프로그래밍 > NestJS' 카테고리의 다른 글
동일한 400 코드에 대해서 스웨거 에러 스키마 작성하기 (0) | 2023.02.05 |
---|---|
NestJS에서 S3로 이미지 업로드하기 (0) | 2023.01.31 |
Strategy, AuthGuard에서 에러 커스텀하기 (2) | 2023.01.29 |
NestJS 모듈 배포를 위한 코드 작성 (0) | 2023.01.11 |
NestJS에 SpreadSheet API 사용하기 (0) | 2023.01.01 |