From af3452f32c1a88167b4ddc23a3fff90472922818 Mon Sep 17 00:00:00 2001 From: sxxxxxb Date: Mon, 27 Jul 2026 16:03:37 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/jwsi/jcms_vpp/Api/ApiClient.java | 32 +++++++++++++++++++ .../net/jwsi/jcms_vpp/Api/ApiResponse.java | 15 +++++++++ .../jwsi/jcms_vpp/Api/RestClientConfig.java | 23 +++++++++++++ .../net/jwsi/jcms_vpp/station/StationDto.java | 18 +++++++++++ 4 files changed, 88 insertions(+) create mode 100644 src/main/java/net/jwsi/jcms_vpp/Api/ApiClient.java create mode 100644 src/main/java/net/jwsi/jcms_vpp/Api/ApiResponse.java create mode 100644 src/main/java/net/jwsi/jcms_vpp/Api/RestClientConfig.java create mode 100644 src/main/java/net/jwsi/jcms_vpp/station/StationDto.java diff --git a/src/main/java/net/jwsi/jcms_vpp/Api/ApiClient.java b/src/main/java/net/jwsi/jcms_vpp/Api/ApiClient.java new file mode 100644 index 0000000..2cee313 --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/Api/ApiClient.java @@ -0,0 +1,32 @@ +package net.jwsi.jcms_vpp.common.client; + +import lombok.RequiredArgsConstructor; +import net.jwsi.jcms_vpp.Api.ApiResponse; +import net.jwsi.jcms_vpp.station.StationDto; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestClient; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; +import java.util.List; + +@Component +@RequiredArgsConstructor +public class ApiClient { + + private final RestClient restClient; + + public ApiResponse> fetchStations(String baseUrl, String token) { + URI uri = UriComponentsBuilder.fromHttpUrl(baseUrl) + .path("/api/station/list") + .build() + .toUri(); + + return restClient.get() + .uri(uri) + .header("Authorization", "Bearer " + token) + .retrieve() + .body(new ParameterizedTypeReference>>() {}); + } +} \ No newline at end of file diff --git a/src/main/java/net/jwsi/jcms_vpp/Api/ApiResponse.java b/src/main/java/net/jwsi/jcms_vpp/Api/ApiResponse.java new file mode 100644 index 0000000..6dca6ca --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/Api/ApiResponse.java @@ -0,0 +1,15 @@ +package net.jwsi.jcms_vpp.Api; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class ApiResponse { + private Integer code; + private String httpStatus; + private String message; + private List data; +} diff --git a/src/main/java/net/jwsi/jcms_vpp/Api/RestClientConfig.java b/src/main/java/net/jwsi/jcms_vpp/Api/RestClientConfig.java new file mode 100644 index 0000000..0a59d67 --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/Api/RestClientConfig.java @@ -0,0 +1,23 @@ +package net.jwsi.jcms_vpp.global.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestClient; + +import java.time.Duration; + +@Configuration +public class RestClientConfig { + + @Bean + public RestClient restClient() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout((int) Duration.ofSeconds(5).toMillis()); + factory.setReadTimeout((int) Duration.ofSeconds(10).toMillis()); + + return RestClient.builder() + .requestFactory(factory) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/net/jwsi/jcms_vpp/station/StationDto.java b/src/main/java/net/jwsi/jcms_vpp/station/StationDto.java new file mode 100644 index 0000000..0da3daa --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/station/StationDto.java @@ -0,0 +1,18 @@ +package net.jwsi.jcms_vpp.station; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class StationDto { + private String providerId; + private String providerNm; + private String bizTaxId; + private String ceo; + private String tel; + private String fax; + private String email; + private String zipCode; + private String addr; +}