✅ 리액트 요청부 코드
const deleteKanbanBoardCard = async (cardId) => {
const response = await apiClient.delete(/api/kanbanboardcard/delete, {
data: { cardId }
})
return response;
}
🔴 백엔드 컨트롤러 코드 (잘못된 코드)
@DeleteMapping("/kanbanboardcard/delete")
public ResponseEntity deleteKanbanBoardCard(@RequestBody Long cardId) {
Long cardId = request.getCardId();
log.info("😀cardId = {}", cardId);
KanbanBoardMessageResponse result = kanbanBoardCardService.deleteBoardCard(cardId);
return ResponseEntity.ok(result);
}
✅ 백엔드 컨트롤러 코드 (올바른 코드)
@DeleteMapping("/kanbanboardcard/delete")
public ResponseEntity deleteKanbanBoardCard(@RequestBody KanbanBoardCardDeleteRequest request) {
Long cardId = request.getCardId();
log.info("😀cardId = {}", cardId);
KanbanBoardMessageResponse result = kanbanBoardCardService.deleteBoardCard(cardId);
return ResponseEntity.ok(result);
}
📌 문제점 정리
백엔드에서 @RequestBody Long cardId는 사용할 수 없음 { " RequestBody에서 기본 자료형(int, long, boolean) 사용 불가능
" }
→ DTO(DeleteCardRequest)를 사용해야 함
✅ 리액트 요청부 코드
const deleteKanbanBoardCard = async (cardId) => {
const response = await apiClient.delete(
/api/kanbanboardcard/delete, {data: { cardId }
})
return response;
}
🔴 백엔드 컨트롤러 코드 (잘못된 코드)
@DeleteMapping("/kanbanboardcard/delete")
public ResponseEntity deleteKanbanBoardCard(@RequestBody Long cardId) {
✅ 백엔드 컨트롤러 코드 (올바른 코드)
@DeleteMapping("/kanbanboardcard/delete")
public ResponseEntity deleteKanbanBoardCard(@RequestBody KanbanBoardCardDeleteRequest request) {
📌 문제점 정리
백엔드에서 @RequestBody Long cardId는 사용할 수 없음 { " RequestBody에서 기본 자료형(int, long, boolean) 사용 불가능
" }
→ DTO(DeleteCardRequest)를 사용해야 함