RestClient

TopOfTheHead·2일 전

Spring Boot

목록 보기
27/27

RestClient
Spring Application이 다른 서버API를 호출하기 위한 Http Client 객체

Spring 서버가 주로 AI 서버 / 결제 서버 등의 마이크로 서비스HTTP 요청 전송 시 사용

  • RestClient 메서드
    .get() / .post() / .put() / .delete() / .patch() 가 존재.

  • Spring Bean으로 등록
@Configuration
public class RestClientConfig {
    @Bean
    public RestClient restClient() {
        return RestClient.create();
    }
}

GET 요청

UserResponse response = restClient.get()
        .uri("http://localhost:8081/users/1")
        .retrieve()
        .body(UserResponse.class);

get() : GET 요청
uri(URI) : URI 주소
retrieve().body(객체) : 해당 객체로 변환하여 응답을 받는 경우 정의

  • Query Parameter
List<UserResponse> users =
        restClient.get().uri
  (uriBuilder -> uriBuilder
                        .path("/users")
                        .queryParam("page", 1)
                        .queryParam("size", 20)
                        .build())
                .retrieve()
                .body(new ParameterizedTypeReference<>() {});

POST 요청

UserResponse response = restClient.post()
                .uri("http://localhost:8081/users")
                .body(request)
                .retrieve()
                .body(UserResponse.class);
  • JWT를 같이 요청하는 경우
UserResponse response = restClient.get()
        .uri("http://localhost:8081/users")
        .header("Authorization", "Bearer " + token)
        .retrieve()
        .body(UserResponse.class);

Generic 적용

private <T, V> V requestToAi(
            String endpoint,
            T data,
            Class<V> respType
    ){
        return restClient.post()
                .uri(aiBaseUrl + endpoint)
                .body(data)
                .retrieve()
                .body(respType);
    }
profile
공부기록 블로그

0개의 댓글