[Spring Boot] RestTemplate 사용법 서버 간 통신 getForEntity, postForEntity

2023. 7. 10. 12:58·프로그래밍 일기/Java & Spring
반응형
버전정보

Java 11

Spring Boot 2.7.13


RestTemplate 메서드
메서드
HTTP
상세설명
getForObject
GET
URL 주소로 HTTP GET 메서드로 객체로 결과를 반환받는다.
getForEntity
GET
URL 주소로 HTTP GET 메서드로 결과는 ResponseEntity로 반환받는다.
postForLocation
POST
POST 요청을 보내고 결과로 헤더에 저장된 URI를 결과로 반환받는다.
postForObject
POST
POST 요청을 보내고 객체로 결과를 반환받는다.
postForEntity
POST
POST 요청을 보내고 결과로 ResponseEntity로 반환받는다.
delete
DELETE
URL 주소로 HTTP DELETE 메서드를 실행한다.
headForHeaders
HEADER
헤더의 모든 정보를 얻을 수 있으면 HTTP HEAD 메서드를 사용한다.
put
PUT
URL 주소로 HTTP PUT 메서드를 실행한다.
patchForObject
PATCH
URL 주소로 HTTP PATCH 메서드를 실행한다.

일반적으로는 getForObject 보다 getForEntity를 사용합니다. (사용자의 응답 데이터를 확인하기 위함 맨 아래 설명 참고)

getForEntity
    public Map getPostTest(Map params) throws Exception {
        MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
        param.add("name", "Frank Oh");
        param.add("country", "US");

        ResponseEntity<Object> response = new RestTemplate().getForEntity("http://jsonplaceholder.typicode.com/posts", Object.class, param);

        Map result = new HashMap();
        result.put("code", 200);
        result.put("data", response.getBody());
        result.put("message", "success");
        return result;
    }

좌측이 getForObject 우측이 getForEntity ( .getBody() 메서드 실행 시 getForObject와 동일한 값 출력)

postForEntity
    public Map kakaoLogin(Map params) throws Exception {
        HttpHeaders headers = new HttpHeaders();

        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        headers.add("Accept", "application/json");

        MultiValueMap<String, String> body = new LinkedMultiValueMap<>();

        body.add("grant_type", "authorization_code");
        body.add("redirect_uri", "http://localhost:3000/callback/kakao");
        body.add("code", params.get("code").toString());

        HttpEntity httpEntity = new HttpEntity<>(body, headers);
        ResponseEntity<Map> response = new RestTemplate().postForEntity("https://kauth.kakao.com/oauth/token", httpEntity, Map.class);

        return response.getBody();
    }

위 로직은 카카오 로그인 API를 호출하기 위해 사용했던 로직입니다.

 

LinkedMultiValueMap

LinkedMultiValueMap은 key값이 중복될 경우 해당 key값을 list로 변환하여 중복된 key의 value를 저장

 

ResponseEntity

ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스입니다. 따라서 HttpStatus, HttpHeader, HttpBody를 포함하고 있습니다.

반응형
저작자표시 (새창열림)

'프로그래밍 일기 > Java & Spring' 카테고리의 다른 글

[Spring Boot] 단일, 다중 파일 업로드 로직 구현 feat.Nuxt3  (0) 2023.07.12
[Spring Boot] 이메일 발송 로직 구현, 인증번호 보내기  (1) 2023.07.10
[Spring Boot] CORS 해결하기 Cross-Origin Resource Sharing 에러 OncePerRequestFilter  (0) 2023.07.10
카카오 로그인 API 사용 방법 nuxt3, spring boot  (2) 2023.07.10
[Spring Boot] 스프링부트 파라미터 받기  (0) 2023.07.07
'프로그래밍 일기/Java & Spring' 카테고리의 다른 글
  • [Spring Boot] 단일, 다중 파일 업로드 로직 구현 feat.Nuxt3
  • [Spring Boot] 이메일 발송 로직 구현, 인증번호 보내기
  • [Spring Boot] CORS 해결하기 Cross-Origin Resource Sharing 에러 OncePerRequestFilter
  • 카카오 로그인 API 사용 방법 nuxt3, spring boot
MakeMe
MakeMe
제가 포스팅한 글 중 잘못된 부분이 있으면 알려주세요!
  • MakeMe
    Developer blog
    MakeMe
    • 모든 글 (71)
      • 프로그래밍 일기 (57)
        • Java & Spring (21)
        • Python & Flask (3)
        • Linux (12)
        • Front-End (10)
        • DB & SQL (6)
        • Git (3)
        • IDE (2)
      • 자격증 (7)
        • 정보처리기능사 (2)
        • SQLD (1)
        • SW개발_L5 (1)
        • AWS (3)
      • 독립일기 (7)
        • 중소기업청년대출 (7)
  • 인기 글

  • 태그

    springboot
    건강보험자격득실확인서
    스프링부트
    Vue
    중기청필수서류
    IntelliJ
    중기청필요서류
    넉스트
    nuxt3
    nuxt
    인텔리제이
    중기청후기
    AWS
    젠킨스 우분투 설치
    중소기업청년대출
    자동배포설정
    스프링
    flask 세팅
    java
    고용보험내역서
    DB
    Spring
    psql
    젠킨스 자동 배포
    중기청서류
    자바
    자바환경변수
    flask
    MYSQL
    DBeaver
  • hELLO· Designed By정상우.v4.10.1
MakeMe
[Spring Boot] RestTemplate 사용법 서버 간 통신 getForEntity, postForEntity
상단으로

티스토리툴바