[Spring] API 응답 값이 객체에 자동으로 세팅되지 않는 이슈 (3Depth)

동민·2022년 3월 17일
0

FeignClient.java

@PostMapping("/xxx")
Response test(final Request request);

Feign Client 를 통해 API를 호출 할 경우, API 응답 값이 응답 객체 Response에 자동으로 잘 세팅되지 않는 이슈가 발생할 수 있다.

특히, 3 Depth 이상 필드가 null 로 세팅되는 경우가있다. ( 1, 2 Depth 필드는 잘 세팅될 때 )

Response.java

{
    A: xx,			// 잘 세팅 됨
    B: {
      B1: aa,
      B2: bb,
      B3: {
        BB1: null,	// null
        BB2: null,
        BB3: null
      }  
    },
    C: yy
}

해결
null로 세팅되는 DTO 필드에 @JsonProperty 어노테이션을 추가한다. 또한, 롬복 @Setter 또는 @Data 어노테이션을 추가한다. @Builder 만 있을 시 오류!

import com.fasterxml.jackson.annotation.JsonProperty;

@Data
class B3 {
  
    @JsonProperty("BB1")
    private String BB1;
    
    @JsonProperty("BB2")
    private String BB2;
    
    @JsonProperty("BB3")
    private String BB3;
}
profile
BE Developer

0개의 댓글