반응형
🔗 Spring RestTemplate을 이용한 REST API 호출 방법 (GET & POST)
1. RestTemplate이란?
RestTemplate
은 Spring Framework에서 제공하는 HTTP 통신용 템플릿 클래스입니다.
외부 REST API 서버와의 연동을 간편하게 수행할 수 있으며, Spring 5까지 널리 사용되었습니다.
Spring Boot 프로젝트에서는 Bean으로 등록해 사용하거나 new RestTemplate()
로 직접 생성할 수 있습니다.
2. HttpURLConnection vs RestTemplate 비교
구분 | HttpURLConnection | RestTemplate |
---|---|---|
라이브러리 | Java 표준 API (java.net) | Spring Framework 내장 |
사용 난이도 | 낮음 (직접 연결, Stream 처리 필요) | 높음 (간단한 메서드 호출) |
응답 처리 | InputStream 수동 처리 | 객체 자동 매핑 지원 |
타입 지원 | String, byte[], JSON 파싱 직접 | Generic, DTO 자동 역직렬화 |
대표 메서드 | 없음 | getForObject(), postForEntity() 등 |
https://yongwoo2000.tistory.com/9
3. RestTemplate GET 방식 예제
// DTO 클래스 예시
public class Post {
private int userId;
private int id;
private String title;
private String body;
// Getter/Setter
}
// GET 요청 메서드
public String callApiWithGet() {
RestTemplate restTemplate = new RestTemplate();
String url = "https://jsonplaceholder.typicode.com/posts/1";
Post post = restTemplate.getForObject(url, Post.class);
return "제목: " + post.getTitle() + ", 내용: " + post.getBody();
}
GET 방식은 조회할 때 사용하며, getForObject
또는 getForEntity
메서드를 사용할 수 있습니다.
4. RestTemplate POST 방식 예제 (JSON 전송)
// 요청용 DTO 클래스
public class PostRequest {
private String title;
private String body;
private int userId;
// 생성자, Getter/Setter
}
// POST 요청 메서드
public String callApiWithPost() {
RestTemplate restTemplate = new RestTemplate();
String url = "https://jsonplaceholder.typicode.com/posts";
PostRequest request = new PostRequest("Hello", "This is a post", 1);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<PostRequest> entity = new HttpEntity<>(request, headers);
ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
return response.getBody();
}
POST 방식에서는 HttpHeaders
를 설정하고, HttpEntity
로 JSON Body와 함께 요청을 전송합니다.
5. RestTemplate Bean 등록 (Spring 환경)
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
Spring Boot에서는 위와 같이 @Bean으로 등록해두고, @Autowired
또는 @RequiredArgsConstructor
로 주입받아 사용할 수 있습니다.
6. 결론
- RestTemplate은 Spring 프로젝트에서 REST API를 간결하게 호출할 수 있는 도구입니다.
- GET과 POST 요청을 쉽게 처리할 수 있으며, DTO 매핑과 예외처리도 손쉽게 구현할 수 있습니다.
- Spring 5 이후에는 WebClient로 점차 대체되지만, 현재도 매우 널리 사용되고 있습니다.
✔️ 실무에서 외부 API 연동이 필요한 경우, RestTemplate을 활용하면 안정적이고 유지보수가 쉬운 구조를 만들 수 있습니다.
'개발자 로그' 카테고리의 다른 글
스프링 시큐리티 1장 인증, 인가 개념 (0) | 2025.07.25 |
---|---|
HttpClient를 활용한 REST API 호출 (GET/POST 예제) (0) | 2025.07.18 |
HttpURLConnection API 만들기 (0) | 2025.07.18 |
Spring MVC 흐름 정리 (Filter → Controller → DB → View) (0) | 2025.07.16 |
Java 8 vs Java 7 기능 비교 정리 (Optional, Stream, Decoder 등) (0) | 2025.07.16 |