Spring Boot RestTemplate을 이용한 HTTP 통신

2018. 2. 12. 16:43서버 프로그래밍

Spring Boot에서는 RestTemplate을 이용하면 HTTP 통신이 쉽게 가능하다.


Consuming a RESTful Web Service

https://spring.io/guides/gs/consuming-rest/


Spring에서 RestTemplate을 사용하여 REST 기반 서비스 요청과 테스트하기

http://blog.saltfactory.net/using-resttemplate-in-spring/


Spring, RestTemplate으로 REST 클라이언트 구현하기

http://jsonobject.tistory.com/237


[컴][웹] Spring 에서 REST API 호출하기

http://i5on9i.blogspot.kr/2014/12/spring-rest-api.html

postForObject

Server 에서 RESTful API server 에 request 를 POST 방식으로 form 의 data 는 json 형식으로 보낼 때 방법. ElasticSearch 등을 사용할 때 활용할 수 있다. 혹시나 해서 적어놓는데, ElasticSearch 는 Java API 를 따로 제공한다.(참고)

@Override
public JsonResult retrieve() {

    String JSONInput = ("{\n" +
            "    \"aggs\": {\n" +
            "       \"aggs_stats\" : {\n" +
            "           \"date_histogram\":{\n" +
            "             \"field\" : \"event_timestamp\",\n" +
            "             \"interval\" : \"hour\"\n" +
            "           }\n" +
            "       }\n" +
            "    }\n" +
            "} ");

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity param= new HttpEntity(JSONInput, headers);


    RestTemplate restTemplate = new RestTemplate();
    String result = restTemplate.postForObject(url, param, String.class);

    return new ElasticSearchResult(result);

}




아래 예제는 스키마에 맞게 클래스를 설계해서 처리하는 방법인데, JSON과 같은 비정형 데이터 스타일의 데이터에는 적합치는 않다고 보인다. 하지만, 무척 성실한 예제라서 추가.

HOW TO READ JSON DATA IN SPRING BOOT AND WRITE TO A DATABASE

http://therealdanvega.com/blog/2017/07/05/read-json-data-spring-boot-write-database