MS간 호출에 있어 질문이 있습니다.
362
작성자 없음
작성한 질문수 0
feign client를 이용해 order-service의 컨트롤러를 호출하는 방식으로 이해했습니다.
그런데, 실제 order-service의 getOrder라는 컨트롤러 메서드는 반환타입이 ResponseEntity로 한번 감싸져 있습니다. 이를 user-service에서 이용할때는 ResponseEntity가 벗겨진 List<ResponseOrders>를 바로 사용했구요.
아마, @FeignClient 어노테이션을 사용함으로써 이렇게 바로 파싱받아 사용할 수 있는 것 같은데.. ResponseEntity로 감싸져 있는 것만 파싱할 수 있는건가요?
답변 1
5
안녕하세요, 이도원입니다.
ResponseEntity는 HTTP 응답에 대한 전체 내용을 가지고 있는 객체입니다. Status Code와 Header, Body를 포함하고 있으며, 요청하는 측에서 ResponseEntity 반환 받아, Status Code, Header, Body의 값을 사용할 수 있습니다.

order-service의 getOrders() 메소드에서 반환 값을 ResponseEntity 감싸지 않고 전달하면, Status Code와 Header는 제어하지 못하고, 그냥 Body만 전달하게 됩니다 (200 OK).
Feign Client의 사용 여부와 상관없이 RestTemplate을 사용하여 호출한다고 해도, user-service에서는 ResponseEntity 형식으로 반환 받을 수도 있고, 그냥 ResponseEntity에 포함되어 있는 Body의 형식으로 반환받을 수도 있습니다. Status Code나 Header값을 사용하는지 여부에 따라 반환 값의 유형을 정하시면 될 것 같습니다.
order-service에서 ResponseEntity로 감싸서 반환하지 않더라도, List<ResponseOrder>는 ResponseEntity의 형식으로 반환 되고, user-service에서 ResponseEntity 반환 받지 않더라도, ResponseEntity의 Body 형식으로 반환 받아 사용하실 수 있습니다. 그러나, order-service의 getOrders() 메소드의 반환 타입과 ResponseEntity를 반환 받는 반환 타입이 다를 경우에는 에러가 발생하게 되니, 양쪽 같의 데이터 타입을 맞춰서 사용하시기 바랍니다.
감사합니다.
kafka 업데이트 강의 듣고 시포요
0
114
2
강의 교안
0
105
2
마이크로서비스간 통신 시, 인증 처리
0
116
2
api gateway 에서 인증 처리
0
76
1
섹션 19 질문드립니다
0
85
2
강의 자료 업데이트
0
105
2
부하분산 강의 섹션
0
66
1
강의자료는 어디에서?
0
98
2
강의 자료는 어디서 다운 받을 수 있나요?
0
131
2
전체 사용자 조회시 오류
0
65
1
혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??
0
120
2
학습 방향
0
105
2
카프카 커넥터 사용 목적 문의
0
92
2
kafka 강의
0
118
2
서비스 디스커버리 종류
0
90
2
강의 자료에 대해서 궁금해요
0
126
2
GlobalFilter, LoggingFilter가 동작하지 않습니다.
0
96
2
Kafka Source Connect 버전 에러
0
95
2
소스커넥터는 사용안한 거 맞죠?
0
85
2
강의자료 업데이트 문의
0
99
2
강의에서 BCryptPasswordEncoder 에 역할(5-2)
0
64
1
강의 업데이트 계획이 궁금합니다.
0
121
2
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
0
168
2
어떤 것이 업데이트 된 건가요?
0
169
2





