@FeignClient(name = "book-store-coupon", url = "http://localhost:9494", configuration = FeignClientConfig.class)
public interface UserAndCouponFeignClient {
@PostMapping("/coupons/{couponId}/users")
ResponseEntity<UserAndCouponResponseDTO> createUserAndCoupon(@PathVariable("couponId") Long couponId, @RequestBody UserAndCouponRequestCreateDTO requestDTO,String userId);
}
Caused by: java.lang.IllegalStateException:
Method has too many Body parameters:
public abstract org.springframework.http.ResponseEntity com.nhnacademy.bookstorefront.userandcoupon.feignclient.UserAndCouponFeignClient.createUserAndCoupon(java.lang.Long,com.nhnacademy.bookstorefront.userandcoupon.domain.dto.request.UserAndCouponRequestCreateDTO,java.lang.String)
프로젝트 진행중에 feignclient 적용하여 쿠폰생성api를 불러오는중에 다음과같은 파라미터 오류가 나옴.
해당원인은 feignclient는 단독으로 String userId 매개변수를 줄 수가 없음.
따라서 @requestparam, @pathvariable을 주거나 아니면 해당 매개변수를 dto에 담아서 보내는 방식을 사용해야한다.
@PostMapping("/coupons/{couponId}/users")
ResponseEntity<UserAndCouponResponseDTO> createUserAndCoupon(@PathVariable("couponId") Long couponId, @RequestBody UserAndCouponRequestCreateDTO requestDTO);
본인은 dto에 담아서 보내는걸로함.
이렇게하니 컴파일 오류가 안나고 정상작동함.