티스토리 뷰
오류발생
@Get()
@UseGuards(JwtAuthGuard)
@ApiBearerAuth('access-token')
@ApiOperation({ summary: '전체 주문 조회' })
async findAll(@Request() req) {
const userId = req.user.id;
return this.orderService.findAll(userId);
}
@Get(':id')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth('access-token')
@ApiOperation({ summary: '주문 조회' })
async findOne(@Request() req, @Param('orderId', ParseIntPipe) orderId: number) {
const userId = req.user.id;
return this.orderService.findOne(userId, orderId);
}
이런 평범한 API 만들고 있는데 프로젝트내에 .http
는 정상적으로 실행됐지만 swagger
를 통해 테스트했다.
{
"message": "Validation failed (numeric string is expected)",
"error": "Bad Request",
"statusCode": 400
}
의 오류를 반환했다.
원인
처음엔 Bad Request 에 꽂혀 코드의 문제라고 생각하고 코드단을 살펴보았다.
controller - service 를 천천히 살펴봤지만 전혀..
그럼 jwt guard 의 문제인가? 도 아니었다.
validation failed = 유효성 검사 실패 인건데 도대체 무슨 유효성 검사에 실패한지가 이해가 안갔다.
입력하는건 orderId 값이고 그 마저도 type을 number로 지정했다.
로그도 전혀 찍히지 않음.
결국 ParseIntPipe
에서 유효성 검사에 걸렸다는 생각이 들었다.
해결방법
1. 라우팅 시스템 문제
@Get(’:id’) 의 코드를 맨 밑으로 옮기면 해결된다는 글을 봤다.
진심… 왜?… 진짜 이해가 안되고 여전히 같은 에러가 떴다.
2. 변수값 맞추기
메소드에서 :id
를 적었다면 Param 에서도 같은 변수인 ‘id’ 로 받아준다.
@Get(':id')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth('access-token')
@ApiOperation({ summary: '주문 조회' })
async findOne(@Request() req, @Param('orderId', ParseIntPipe) orderId: number) {
const userId = req.user.id;
return this.orderService.findOne(userId, orderId);
}
이 코드에서
@Get(':id')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth('access-token')
@ApiOperation({ summary: '주문 조회' })
async findOne(@Request() req, @Param('id', ParseIntPipe) orderId: number) {
const userId = req.user.id;
return this.orderService.findOne(userId, orderId);
}
이렇게 …. ^^…. 이게 바로 자바스크립트의 세계인가…?
이런 말도 안되는 걸 몸이 안좋은 날 잡고 있어서 짜증 폭발 ㅠㅠㅋㅋㅋㅋ
'Backend' 카테고리의 다른 글
[DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead. (0) | 2024.02.07 |
---|---|
[laravel] 프로젝트 생성하기 + vue 연결 (feat.mac m1) (0) | 2022.07.09 |
[CSS] Style 적용 우선순위 (0) | 2022.06.23 |
[보안] XSS(Cross-Site Scripting)에 대하여 (0) | 2022.06.11 |
[Laravel] 블레이드에서 html 태그가 문자열로 출력될 경우 해결 (0) | 2022.06.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- IntelliJ
- Sts
- php
- algorithm
- Git
- laravel
- MAC
- 알고리즘
- html태그
- javascript알고리즘
- RDS
- Spring
- phpstorm
- javascriptalgorithm
- IntelliJ말고spring
- homebrew
- M1
- 라라벨
- 프로그래머스코딩테스트
- 김영한spring
- http
- 프로그래머스
- 인프런스프링mvc
- 이븐아이부트캠프
- nestjs
- 우아한형제spring
- 이븐아이후기
- 프로그래머스알고리즘
- 인프런spring
- 이븐아이부트캠프후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
글 보관함