API를 호출하고 응답을 검색하고 DTO로 구문 분석하는 애플리케이션에서 작업 중입니다. 이제 내가 정의한 응답 DTO는 다음과 같습니다.
@Getter
@JsonIgnoreProperties(ignoreUnknown = true)
public class ObservationsResponse {
private Integer count;
private Long retrieval_date;
private List<Observation> observations;
}
API 응답에서 파싱 한 후 DTO가 채워지면 속성을 가져 오기만하면되기 때문에 게터 만 정의했습니다.
질문에 도달하면 내 웹 클라이언트가 DTO에 대한 응답을 구문 분석 할 수 있도록 여기에서도 setter를 정의해야합니까? 웹 클라이언트는 관련 속성을 설정하기 위해 setter를 사용합니까, 아니면 다른 메커니즘을 통해 수행됩니까 (우리가 액세스하려는 필드이므로 여기에서 리플렉션을 통해 수행 할 수 있다고 생각하지 않습니다. 내가 틀렸다면 수정하십시오) ).
API 요청에 스프링 웹 클라이언트를 사용하고 있습니다.
webClient.get().uri(uri).retrieve()
.onStatus(httpStatus -> !HttpStatus.OK.is2xxSuccessful(), ClientResponse::createException)
.bodyToMono(ReviewPageResponse.class)
.retryWhen(Constant.RETRY_BACKOFF_SPEC)
.block();