반응형
RestTemplate와 WebClient 사용해보기
스프링5 부터인지 4부터인지는 모르겠으나 어쨌든 WebClient에서는 블럭킹 또는 WebFlux 방식으로 호출이 가능하다.
토비님의 유투브를 시청하는 중. 이런 난 스프링6이 아닌데... 하지만 그래도 복습차 webClinet 예제를 따라해본다.
우선 스프링 부트로 프로젝트를 만들고 어플리케이션이 시작할때 소스코드가 실행되게 하는 간단한 방법으로 테스트.
package com.example.demo;
import com.sun.org.apache.bcel.internal.Repository;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
import java.util.Map;
@SpringBootApplication
public class HttpInf3Application {
//스프링 부트가 시작하면서 시작하는 코드
@Bean
ApplicationRunner init(){
return args -> {
System.out.println("Hello World!!");
//https://v6.exchangerate-api.com/v6/4f8ca2d9fe8bc6e708235817/latest/USD
// RestTemplate rt = new RestTemplate();
// String res = rt.getForObject("https://v6.exchangerate-api.com/v6/4f8ca2d9fe8bc6e708235817/latest/USD", String.class);
// System.out.println(res);
RestTemplate rt = new RestTemplate();
Map<String, Map<String, Double>> res = rt.getForObject("https://v6.exchangerate-api.com/v6/4f8ca2d9fe8bc6e708235817/latest/USD", Map.class);
System.out.println(res.get("conversion_rates").get("KRW"));
//WebClient 스타일로 받아 모노 맵으로 받는다. 리액티브 방식
WebClient client = WebClient.create("https://v6.exchangerate-api.com");
Map<String, Map<String, Double>> res2 = client.get().uri("/v6/4f8ca2d9fe8bc6e708235817/latest/USD").retrieve().bodyToMono(Map.class).block();
System.out.println(res2.get("conversion_rates").get("KRW"));
//spring6 HTTP Interface
};
}
public static void main(String[] args) {
SpringApplication.run(HttpInf3Application.class, args);
}
}
예제에 사용된 사이트 정보
https://app.exchangerate-api.com/dashboard
Json으로 아래와 같은 API (USD 기준 환율 정보)
반응형
'슬기로운 자바 개발자 생활 > 스프링 및 자바웹 서비스' 카테고리의 다른 글
Mybatis에서 Oracle Procedure 사용 (0) | 2023.06.04 |
---|---|
스프링에서 oracle declare 문 사용해보기 (0) | 2023.05.14 |
JSP page request, response (0) | 2023.01.14 |
JSP page 지시자 errorPage, isErrorPage 사용법 (0) | 2023.01.14 |
구글 로그인 API 스프링부트 OAuth 2.0 - 2. 구현해보기 (3) | 2022.12.18 |
댓글