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
반응형
댓글