inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

FeignClient 사용 ②

MS간 호출에 있어 질문이 있습니다.

362

작성자 없음

작성한 질문수 0

2

feign client를 이용해 order-service의 컨트롤러를 호출하는 방식으로 이해했습니다.

 그런데, 실제 order-service의 getOrder라는 컨트롤러 메서드는 반환타입이 ResponseEntity로 한번 감싸져 있습니다. 이를 user-service에서 이용할때는 ResponseEntity가 벗겨진 List<ResponseOrders>를 바로 사용했구요.

아마, @FeignClient 어노테이션을 사용함으로써 이렇게 바로 파싱받아 사용할 수 있는 것 같은데.. ResponseEntity로 감싸져 있는 것만 파싱할 수 있는건가요?

JPA spring-cloud spring-boot architecture Kafka msa

답변 1

5

Dowon Lee

안녕하세요, 이도원입니다. 

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