728x90
RestTemplate는 HTTP 요청을 동기 방식으로 실행하는 것으로 json이나 xml과 같은 일반적인 template에 대해 간편하게 응답을 받을 수 있습니다. RestTemplate는 다음의 함수를 제공합니다.
method | http | description |
getForObject | GET | 주어진 URL로 GET 방식을 사용하여 responseType으로 결과를 받는다. |
getForEntity | GET | 주어진 URL로 GET 방식을 사용하여 ResponseEntity로 결과를 받는다. |
다은은 getForObject 함수를 사용하여 외부 API 경로의 결과를 Item.class 타입으로 받는 예제입니다.
private Item[] getItemList() {
String url = "외부 API 경로";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
return restTemplate.getForObject(url, Item[].class);
}
url의 결과가 여러 개로 이뤄져 있으면 결과 반환 타입을 list로 바꾸면 됩니다. 마찬가지로 url의 결과가 1개라면 Item.class와 같이 변경하여 사용하면 됩니다.
restTemplate는 mock 객체와는 다르게 실제로 요청을 보냅니다. 실제 요청이 필요한 테스트 또는 MSA 구조, 외부 API 정보가 필요한 경우 활용할 수 있습니다.
728x90
'Java, JavaScript > Spring Boot' 카테고리의 다른 글
[Spring Boot] dto의 toEntity를 어떻게 사용해야할까? (0) | 2021.12.23 |
---|---|
[Error] ids for this class must be manually assigned before calling save() (1) | 2021.11.09 |
[Spring Boot] Spring Rest Docs 사용하기 - PUT (0) | 2021.09.23 |
[Spring Boot] Spring Rest Docs 사용하기 - POST (0) | 2021.09.16 |
[Spring Boot] Spring Rest Docs 사용하기 - GET (0) | 2021.09.13 |