자바/리팩토링
[리팩토링]@ Controller 에서 API 를 호출하여 사용할 수 있는 restTemplate
OverTheHorizon3410
2023. 9. 23. 00:06
Spring Webflux 에서 사용할 수 있는 WebClient 라는 모던한 대체제가 있는 클라이언트입니다.
정의
- 동기 방식의 HTTP 클라이언트
- 웹 서비스 호출을 위한 메서드 제공
특징
- 동기성
- 동기적으로 동작함.
- API 호출을 하는 경우 해당 호출이 완료될 때까지 대기함.
- 다양한 HTTP 메서드
- GET , POST , PUT , DELETE 등의 HTTP 메서드를 위한 템플릿 메서드 제공
- 데이터 변환 가능
- JSON , XML 등의 여러 응답에 대응가능
기본 세팅
- Spring Bean 등록
@Configuration public class RestConfig { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }
- api 의 호출
@Controller @RequestMapping("/boards") public class BoardViewController { @Autowired private RestTemplate restTemplate; @GetMapping("/{boardId}") public String boardPage(@PathVariable Long boardId, Model model) { Board board = restTemplate.getForObject("http://api.example.com/boards/" + boardId, Board.class); model.addAttribute("board", board); return "boardPage"; } }
- 그외에도 getForEntity → ENTITY 형식 응답을 받아올수있음.
- exchange → List 형태의 데이터를 불러올수 있음.
Uploaded by N2T