MSA
[MSA] Spring Boot - RestTemplate 란? 사용
차노도리
2023. 4. 23. 09:29
RestTemplate
- Spring에서 지원하는 간편하게 Rest API를 호출할 수 있게 해주는 클래스
Application - Bean 등록
- @LoadBalanced // 마이크로 서비스 이름으로 찾을 수 있게 해 줌
package com.gugbab.gugbabservices;
import ...
@SpringBootApplication
@EnableDiscoveryClient
public class GugbabServicesApplication {
...
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
RestTemplate 사용 예시
public class UserServicesImpl implements UserService {
...
private Environment env;
RestTemplate restTemplate;
@Autowired
public UserServicesImpl(Environment env, RestTemplate restTemplate ...) {
...
this.env = env;
this.restTemplate = restTemplate;
}
@Override
public UserDto getUserByUserId(String userId, HttpHeaders headers) {
...
String vocaUrl = String.format(env.getProperty("gugbab.public.url.voca_server") + "/star/all/%s",userId);
ResponseEntity<StarsResponse> starsResponse =
restTemplate.exchange(vocaUrl, HttpMethod.GET, new HttpEntity<>(headers), new ParameterizedTypeReference<StarsResponse>() {
});
StarsResponse stars = starsResponse.getBody();
...
}
}