Spring에서 지원하는 객체, 간편하게 Rest방식 API를 호출할 수 있는 Spring 내장 클래스
json, xml, String 응답을 모두 받을 수 있다.
Rest API 서비스를 요청 후 응답 받을 수 있도록 설계,
HTTP 프로토콜의 메소드(GET, POST, DELETE, PUT 등)들에 적합한 여러 메소드 제공.
Header, Content-Type 등 설정해 외부 api 호출
private final RestTemplate restTemplate;
private final KakaoUriBuilderService kakaoUriBuilderService;
@Value("${kakao.rest.api.key}") // 환경변수 가져오기
private String kakaoRestApiKey;
public KakaoApiResponseDto requestAddressSearch(String address){
if(ObjectUtils.isEmpty(address)) return null;
URI uri = kakaoUriBuilderService.builderUriByAddressSearch(address);
HttpHeaders headers = new HttpHeaders();
headers.set(HttpHeaders.AUTHORIZATION, "KakaoAK " + kakaoRestApiKey);
HttpEntity httpEntity = new HttpEntity<>(headers);
// kakao api 호출
return restTemplate.exchange(uri, HttpMethod.GET, httpEntity, KakaoApiResponseDto.class).getBody();
}
}