본문 바로가기
IT/Spring

[Spring] - 스프링 RestTemplate, RestTemplateBuilder 클래스 사용 방법

by 차이나는 개발자 2022. 6. 28.
728x90
반응형

#스프링 RestTemplate, RestTemplateBuilder 클래스 사용 방법

 

 

#RestTemplate이란

-스프링3부터 지원하는 HTTP 통신 기능을 쉽게 사용할 수 있게 설계되어 있는 템플릿입니다.

REST API 호출이후 응답을 받을 때까지 기다리는 동기방식으로 처리되며 RESTful 방식을 지키고 있습니다.

 

 

#RestTemplateBuilder

-빈 생성시 사용합니다.

 

 

#RestTemplate 관련 주요 메소드

메소드 HTTP 설명
getForObject GET GET 형식으로 요청하며 객체로 결과값을 반환받습니다.
getForEntity GET GET 형식으로 요청하며 ResponseEntity로 결과를 받환받습니다.
postForObject POST POST 형식으로 요청하며 객체로 결과값을 반환받습니다.
postForEntity POST POST 형식으로 요청하며 ResponseEntity로 결과를 반환받습니다.
delete DELETE DELETE 형식으로 요청합니다.
put PUT PUT 형식으로 요청합니다.
patchForObject PATCH PATCH 형식으로 요청합니다.
exchange any HTTP 헤더를 만들어서 추가할 수 있으며 어떤 HTTP 형식으로도 사용 가능합니다.
execute any Request / Response 콜백을 수정할 수 있습니다.

 

 

#참고 소스

@Override
public ResponseEntity<MemberDTO> addHeader() {
    URI uri = UriComponentsBuilder
            .fromUriString("http://localhost:8080")
            .path("/api/server/add-header")
            .build()
            .toUri();

        MemberDTO memberDTO = new MemberDTO();
        memberDTO.setName("jack");
        memberDTO.setEmail("jack@naver.com");
        memberDTO.setOrganization("jjjjj");

        RequestEntity<MemberDTO> requestEntity = RequestEntity
                .post(uri)
                .header("header-key", "header-value")
                .body(memberDTO);

        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<MemberDTO> responseEntity = restTemplate.exchange(requestEntity, MemberDTO.class);

        LOGGER.info("status code : {}", responseEntity.getStatusCode());
        LOGGER.info("body: {}", responseEntity.getBody());

        return responseEntity;
}

 

 

 

728x90
반응형

댓글