Ambiguous handler methods mapped for HTTP path 오류

Date:     Updated:

카테고리:

태그:

오늘 Controller쪽 PathVariable 넣어가며 개발중이엿는데 개발중에 이런 오류가 나왔다.
image

다행히도 수정 -> 테스트 -> 수정 -> 테스트 반복으로 작업하다보니 바로 문제가 뭔지알수있었다.
하나의 URL을 여러개의 콘트롤러에서 매핑할 수 없으니 중복되는 url이 없도록 하나의 콘트롤러에서만 사용하라는 것이엿다.

문제의 코드이다.

    /**
     * M4-3 예약 상세 조회 (유저)
     */
    @GetMapping("/{mbId}/reservation/{reservationId}")
    public ResponseEntity<UserReservationDto> getOneReservation(@PathVariable String mbId, @PathVariable String reservationId) {

        UserReservationDto UserReservationDto = userReservationService.getOneReservation(UUID.fromString(mbId),UUID.fromString(reservationId));

        return ResponseEntity.ok(UserReservationDto);
    }


    /**
     * M4-4 예약 전체 조회 (유저)
     */
    @GetMapping("/{mbId}/reservation/{status}")
    public List<UserReservationDto> getAllReservation(@PathVariable String mbId, @PathVariable String status) {
        return userReservationService.getAllReservation(UUID.fromString(mbId), status);
    }

확인해보니 22번째줄과 34번째줄에 PathVariable를 넣어 동일하지 않다고 생각했는데 알아보니 / 를 넣어야지만 URI로 인식한다고한다. 위 상태에서 {status}를 URI로 사용하려면 아래와 같은코드로 변할것이다.

@GetMapping("/{mbId}/reservation/{status}/")

저렇게 되버리면 팀에서 정한 API규칙이 깨져서 아래와 같이 변경후 오류를 해결하였다.

@GetMapping("/{mbId}/reservation/all/{status}")

Error 카테고리 내 다른 글 보러가기

댓글남기기