Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Rest Template 본문

Spring Boot

Rest Template

Seung__ 2021. 7. 1. 22:57

1. Rest Template란?


Spring 3.0부터 지원, 간편하게 Rest방식 API를 호출할 수 있는 spring 내장 클래스

 

2. 사용 방법


 1-1) uri 생성

   (naverLocalSearchUri에 uri를 String으로 저장해둠)

 URI uri = UriComponentsBuilder.fromUriString(naverLocalSearchUrl)
                .queryParams(searchLocalReq.toMultiValueMap())
                .build()
                .encode().toUri();

 

 1-1) queryParam 만들기 : MultiValueMap<K , V> 활용

  MultiValueMatp<K, V>는 key & value 형태로 맵핑하여 query param에 사용이 가능하다.

  add(key, value)를 통해 추가가 가능

  public MultiValueMap<String, String> toMultiValueMap(){
        //?????쿼리만들기, key, value 형태
        var map = new LinkedMultiValueMap<String, String>();
        map.add("query", query);
        map.add("display", String.valueOf(display));
        map.add("start", String.valueOf(start));
        map.add("sort", sort);

        return map;
    }
LinkedMultiValueMap :  LinkedHashMap을 감싸는 클래스,  MultiValueMap의 linked list 형태
LinkedHashMap :  Map interface의 구현 클래스로 Hash와 linked List로 구성됨.
Linked list : 2021.06.06 - [Java/자료구조] - Linked List :연결 리스트

 

1-2) queryParam만들기 : 기초적인 방법, 직접 때려넣기

    URI uri = UriComponentsBuilder
                .fromUriString("http://localhost:9090")
                .path("/api/server/hello")
                .queryParam("name","kjhgkjh" )//path에는 다양한 정보 넣어줄 수 있음.
                .queryParam("age", 55)
                .encode()
                .build()
                .toUri();

2) header 생성

 var headers = new HttpHeaders();
 headers.set("X-Naver-Client-Id", naverClientId);
 headers.set("X-Naver-Client-Secret", naverSecret);
 headers.setContentType(MediaType.APPLICATION_JSON);

 

 3) Http Entity만들기, Response type 지정

 var httpEntity = new HttpEntity<>(headers);
 var responseType = new ParameterizedTypeReference<SearchLocalRes>(){};

 4) RestTemplate 만들기

var responseEntity = new RestTemplate().exchange(
                uri,
                HttpMethod.GET,
                httpEntity,
                responseType
        );

 

'Spring Boot' 카테고리의 다른 글

스프링 웹 개발 기초  (0) 2021.07.21
view 환경설정  (0) 2021.07.21
Bean & Ioc & Application Context  (0) 2021.06.16
AOP 관련 용어 , Aspect, Advice, Execution ..  (0) 2021.06.05
Swagger 설정  (0) 2021.05.30
Comments