<
RestTemplate 사용하기
>
🌠다음 포스팅🌠

AJAX 통신의 진화
☄이전 포스팅☄

스프링 속성 자동주입
openAPI를 적극 활용해보자

RestTemplate 의 등장

Spring 3 부터 지원하기된 이 클래스는 스프링에서 제공하는 http 통신에 유용하게 쓸 수 있는 템플릿으로 HTTP 서버와의 통신을 단순화를 목적으로 등장했다.

Spring 5 부터는 WebFlux / WebClient 방식을 도입하여 RestTemplate을 대체할 수 있다.

RestTemplate 상세 설명

스프링 공식 문서를 확인하면 다음과 같이 쓰여있다.

HTTP 요구를 실행하는 HttpURL Connection, Apache HttpComponents 등의 기본 HTTP 클라이언트라이브러리 상에서 심플한 템플릿 메서드 API를 제공한다.

RestTemplate는 HTTP 메서드에 의한 일반적인 시나리오용 템플릿과 빈도가 낮은 케이스를 지원하는 일반적인 교환 및 실행 방식을 제공합니다.

즉, 개발자가 구성한 **URIHEADER 등의 데이터를 조립하여 RestTemplate에 반환하고 싶은 메소드를 적용만 해준다면 자동으로 웹상에서 URI를 호출하여 데이터를 처리해주는 것이다.**

**<반환하고 싶은="" 메소드="">** ![](https://media.vlpt.us/images/soosungp33/post/d02efacc-56e6-4abc-a390-12ecbb565c6b/image.png)

RestTemplate 사용방법

@RestController
public class Apicontroller {


    /// https://openapi.naver.com/v1/search/local.xml?query=%EC%A3%BC%EC%8B%9D&display=10&start=1&sort=random

    @GetMapping("/naver")
    public String naver() {

        String query = "중국집";

        // URI 구성하기
        URI uri = UriComponentsBuilder
                .fromUriString("https://openapi.naver.com")
                .path("v1/search/local.json")
                .queryParam("query", query)
                .queryParam("display", 10)
                .queryParam("start", 1)
                .queryParam("sort", "random")
                .encode(Charset.forName("UTF-8"))
                .build()
                .toUri();

        // 헤더 붙여주기
        RequestEntity<Void> req = RequestEntity
                .get(uri)
                .header("X-Naver-Client-Id", "You're X-Naver-Client-Id")
                .header("X-Naver-Client-Secret", "You're X-Naver-Client-Secret")
                .build();

        RestTemplate restTemplate = new RestTemplate();


        ResponseEntity<String> result = restTemplate.exchange(req, String.class);

        return result.getBody();

    }
}

Reference

Top
Foot