✏️ Feign Client 에서 응답 받을 때 Jackson 역직렬화 이슈 - LIMITED-TEAM25/wiki_repository GitHub Wiki
✔️ 문제 상황
record 기반 클래스에서 필드명이 다른 이슈가 생겨서 Feign Client 응답 파싱이 실패하는 이슈가 생김
public record OrderCreateResponse(
UUID orderId, // feign client에서는 id 라는 필드명으로 응답하고 있음
UUID productId,
Long userId,
...
) {}
✔️ 원인
record는 모든 필드가 final이고 생성자를 암시적으로 사용하기때문에, Jackson이 생성자 파라미터 이름을 알 수 없어 매핑 실패함
✔️ 해결 방법
생성자에 @JsonProperty 어노테이션을 달아서 직접 명시를 해주면 됨
public record OrderCreateResponse(
@JsonProperty("id")
UUID orderId,
UUID productId,
Long userId,
...
) {}
(이때, Jackson 버전이 낮거나, IntelliJ에서 인식이 안되는 경우에는 클래스 또는 record 위에 @JsonCreator 어노테이션을 달아주어야함.)
✨ 결론
Feign Client 시 응답 DTO는 Jackson 설정을 통해 정확하게 맞춰주어야 역직렬화가 가능하다!