OBP API 주소 변경

This commit is contained in:
Rinjae
2026-01-19 09:31:33 +09:00
parent 38ed877c49
commit 1affd1e6b7
5 changed files with 101 additions and 158 deletions
+4
View File
@@ -106,6 +106,10 @@
<servlet-name>springapp</servlet-name>
<url-pattern>*.file</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/emergency.jsp</welcome-file>
+4
View File
@@ -111,6 +111,10 @@
<servlet-name>springapp</servlet-name>
<url-pattern>*.file</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/emergency.jsp</welcome-file>
+67 -92
View File
@@ -15,13 +15,14 @@ OBP (OpenBanking Platform) API는 API Gateway의 메트릭 데이터와 API 정
OBP API는 모든 요청에서 `providerCode` 파라미터로 권한을 검증합니다.
- **허용 값**: `KJB` (대소문자 무시: `kjb`, `Kjb` 등 모두 가능)
- **검증**: 요청 시 providerCode가 명시적으로 포함되어야 합니다
- **검증**: 요청 시 providerCode가 반드시 포함되어야 합니다 (필수 파라미터)
- **검증 실패**: 유효하지 않은 providerCode는 `BizException` 에러 발생
**예시**:
```
GET /api/apis.json?providerCode=KJB
GET /api/apis.json?providerCode=kjb
GET /api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=KJB
GET /api/apis/KJB
GET /api/apis/000008-01/KJB
GET /api/metrics/afterTimeslice/20251202030000/KJB
```
## API 엔드포인트
@@ -31,15 +32,19 @@ GET /api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=KJB
#### 요청
```http
GET /api/apis.json
GET /api/apis/{providerCode}
```
**경로 파라미터**:
- `providerCode` (필수): Provider 코드 (KJB만 허용, 대소문자 무시)
**쿼리 파라미터**:
- `pretty` (선택): `true`면 JSON을 들여쓰기 형식으로 반환
**예시**:
```bash
curl "http://localhost:8080/monitoring/api/apis.json?pretty=true"
curl "http://localhost:8080/monitoring/api/apis/KJB"
curl "http://localhost:8080/monitoring/api/apis/kjb?pretty=true"
```
#### 응답
@@ -67,34 +72,6 @@ curl "http://localhost:8080/monitoring/api/apis.json?pretty=true"
- `status` (string): 상태 (1=활성)
- `description` (string): 설명
**HTTP 상태 코드**:
- `200 OK`: 조회 성공
- `500 Internal Server Error`: 서버 오류
---
### 2. API 목록 조회 (providerCode 검증)
#### 요청
```http
GET /api/apis.json?providerCode=KJB
```
**쿼리 파라미터**:
- `providerCode` (필수): Provider 코드 (KJB만 허용, 대소문자 무시)
- `pretty` (선택): `true`면 JSON을 들여쓰기 형식으로 반환
**예시**:
```bash
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&pretty=true"
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb"
```
#### 응답
전체 API 목록 (응답 형식은 엔드포인트 1과 동일)
**HTTP 상태 코드**:
- `200 OK`: 조회 성공
- `400 Bad Request`: 유효하지 않은 providerCode
@@ -108,23 +85,25 @@ curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb"
---
### 3. API 목록 조회 (기관별)
### 2. API 목록 조회 (기관별)
#### 요청
```http
GET /api/apis.json?providerCode=KJB&partnerCode={orgCode}
GET /api/apis/{orgCode}/{providerCode}
```
**쿼리 파라미터**:
**경로 파라미터**:
- `orgCode` (필수): 기관코드 (OBP 파트너코드)
- `providerCode` (필수): Provider 코드 (KJB만 허용, 대소문자 무시)
- `partnerCode` (필수): 기관코드 (OBP 파트너코드)
**쿼리 파라미터**:
- `pretty` (선택): `true`면 JSON을 들여쓰기 형식으로 반환
**예시**:
```bash
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&partnerCode=000008-01&pretty=true"
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb&partnerCode=000008-01"
curl "http://localhost:8080/monitoring/api/apis/000008-01/KJB"
curl "http://localhost:8080/monitoring/api/apis/000008-01/kjb?pretty=true"
```
#### 응답
@@ -137,30 +116,32 @@ curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb&partnerCod
**HTTP 상태 코드**:
- `200 OK`: 조회 성공 (데이터 있음 또는 없음)
- `400 Bad Request`: 유효하지 않은 providerCode 또는 partnerCode
- `400 Bad Request`: 유효하지 않은 providerCode 또는 orgCode
- `500 Internal Server Error`: 서버 오류
---
### 4. GwMetric 데이터 조회 (시간대 이후)
### 3. GwMetric 데이터 조회 (시간대 이후)
#### 요청
```http
GET /api/metrics/after-timeslice.json?timeslice={yyyyMMddHHmmss}&providerCode=KJB
GET /api/metrics/afterTimeslice/{timeslice}/{providerCode}
```
**쿼리 파라미터**:
**경로 파라미터**:
- `timeslice` (필수): 조회 시작 시간대 (형식: `yyyyMMddHHmmss`)
- 예: `20251202030000` (2025-12-02 03:00:00)
- 분/초는 자동으로 정각(00:00)으로 처리됩니다
- `providerCode` (필수): Provider 코드 (KJB만 허용, 대소문자 무시)
**쿼리 파라미터**:
- `pretty` (선택): `true`면 JSON을 들여쓰기 형식으로 반환
**예시**:
```bash
curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=KJB"
curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=kjb&pretty=true"
curl "http://localhost:8080/monitoring/api/metrics/afterTimeslice/20251202030000/KJB"
curl "http://localhost:8080/monitoring/api/metrics/afterTimeslice/20251202030000/kjb?pretty=true"
```
#### 응답
@@ -213,7 +194,7 @@ curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslic
async function getAllApis() {
try {
const response = await fetch(
'http://localhost:8080/monitoring/api/apis.json?pretty=true'
'http://localhost:8080/monitoring/api/apis/KJB?pretty=true'
);
if (!response.ok) {
@@ -232,7 +213,7 @@ async function getAllApis() {
async function getApisByPartner(partnerCode) {
try {
const response = await fetch(
`http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&partnerCode=${partnerCode}&pretty=true`
`http://localhost:8080/monitoring/api/apis/${partnerCode}/KJB?pretty=true`
);
if (!response.ok) {
@@ -251,7 +232,7 @@ async function getApisByPartner(partnerCode) {
async function getMetricsAfterTimeslice(timeslice) {
try {
const response = await fetch(
`http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslice=${timeslice}&providerCode=KJB&pretty=true`
`http://localhost:8080/monitoring/api/metrics/afterTimeslice/${timeslice}/KJB?pretty=true`
);
if (!response.ok) {
@@ -282,7 +263,7 @@ const BASE_URL = 'http://localhost:8080/monitoring/api';
// 1. API 전체 목록 조회
async function getAllApis() {
try {
const response = await axios.get(`${BASE_URL}/apis.json`, {
const response = await axios.get(`${BASE_URL}/apis/KJB`, {
params: { pretty: true }
});
console.log('All APIs:', response.data);
@@ -295,12 +276,8 @@ async function getAllApis() {
// 2. 기관별 API 목록 조회
async function getApisByPartner(partnerCode) {
try {
const response = await axios.get(`${BASE_URL}/apis.json`, {
params: {
providerCode: 'KJB',
partnerCode: partnerCode,
pretty: true
}
const response = await axios.get(`${BASE_URL}/apis/${partnerCode}/KJB`, {
params: { pretty: true }
});
console.log(`APIs for ${partnerCode}:`, response.data);
return response.data;
@@ -312,12 +289,8 @@ async function getApisByPartner(partnerCode) {
// 3. GwMetric 데이터 조회
async function getMetricsAfterTimeslice(timeslice) {
try {
const response = await axios.get(`${BASE_URL}/metrics/after-timeslice.json`, {
params: {
timeslice: timeslice,
providerCode: 'KJB',
pretty: true
}
const response = await axios.get(`${BASE_URL}/metrics/afterTimeslice/${timeslice}/KJB`, {
params: { pretty: true }
});
console.log(`Metrics after ${timeslice}:`, response.data);
return response.data;
@@ -341,25 +314,19 @@ public class ObpApiClient {
// 1. API 전체 목록 조회
public List<Map> getAllApis() {
String url = BASE_URL + "/apis.json?pretty=true";
String url = BASE_URL + "/apis/KJB?pretty=true";
return restTemplate.getForObject(url, List.class);
}
// 2. 기관별 API 목록 조회
public List<Map> getApisByPartner(String partnerCode) {
String url = BASE_URL + "/apis.json?" +
"providerCode=KJB&" +
"partnerCode=" + partnerCode + "&" +
"pretty=true";
String url = BASE_URL + "/apis/" + partnerCode + "/KJB?pretty=true";
return restTemplate.getForObject(url, List.class);
}
// 3. GwMetric 데이터 조회
public List<Map> getMetricsAfterTimeslice(String timeslice) {
String url = BASE_URL + "/metrics/after-timeslice.json?" +
"timeslice=" + timeslice + "&" +
"providerCode=KJB&" +
"pretty=true";
String url = BASE_URL + "/metrics/afterTimeslice/" + timeslice + "/KJB?pretty=true";
return restTemplate.getForObject(url, List.class);
}
@@ -386,16 +353,16 @@ public class ObpApiClient {
```bash
# 1. API 전체 목록 조회
curl "http://localhost:8080/monitoring/api/apis.json?pretty=true"
curl "http://localhost:8080/monitoring/api/apis/KJB?pretty=true"
curl "http://localhost:8080/monitoring/api/apis/kjb"
# 2. 기관별 API 목록 조회
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&partnerCode=000008-01&pretty=true"
curl "http://localhost:8080/monitoring/api/apis/000008-01/KJB?pretty=true"
curl "http://localhost:8080/monitoring/api/apis/000008-01/kjb"
# 3. GwMetric 데이터 조회
curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=KJB&pretty=true"
# providerCode를 소문자로 전송
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb"
curl "http://localhost:8080/monitoring/api/metrics/afterTimeslice/20251202030000/KJB?pretty=true"
curl "http://localhost:8080/monitoring/api/metrics/afterTimeslice/20251202030000/kjb"
```
---
@@ -434,13 +401,13 @@ curl "http://localhost:8080/monitoring/api/apis.json?providerCode=kjb"
```
GET /kjb/apis.json
GET /api/apis.json?providerCode=KJB
GET /api/apis/{providerCode}
```
```
GET /kjb/{orgCode}/apis.json
GET /api/apis.json?providerCode=KJB&partnerCode={orgCode}
GET /api/apis/{orgCode}/{providerCode}
```
**예시**:
@@ -453,8 +420,8 @@ curl "http://localhost:8080/monitoring/kjb/000008-01/apis.json"
새로운:
```bash
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB"
curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&partnerCode=000008-01"
curl "http://localhost:8080/monitoring/api/apis/KJB"
curl "http://localhost:8080/monitoring/api/apis/000008-01/KJB"
```
#### ObpGwMetricController
@@ -464,13 +431,13 @@ curl "http://localhost:8080/monitoring/api/apis.json?providerCode=KJB&partnerCod
```
GET /kjb/gw-metrics/{datetime}.json
GET /api/metrics/after-timeslice.json?timeslice={yyyyMMddHHmmss}&providerCode=KJB
GET /api/metrics/afterTimeslice/{timeslice}/{providerCode}
```
```
GET /kjb/gw-metrics/after-timeslice/{datetime}.json
GET /api/metrics/after-timeslice.json?timeslice={yyyyMMddHHmmss}&providerCode=KJB
GET /api/metrics/afterTimeslice/{timeslice}/{providerCode}
```
**datetime 형식 변환**:
@@ -491,7 +458,7 @@ curl "http://localhost:8080/monitoring/kjb/gw-metrics/after-timeslice/2025-12-02
새로운:
```bash
curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslice=20251202030000&providerCode=KJB"
curl "http://localhost:8080/monitoring/api/metrics/afterTimeslice/20251202030000/KJB"
```
---
@@ -500,7 +467,7 @@ curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslic
### Q1: providerCode는 무엇인가요?
**A**: providerCode는 API 접근 권한을 검증하는 파라미터입니다. 현재 OBP API는 "KJB" (광주은행)만 허용합니다.
**A**: providerCode는 API 접근 권한을 검증하는 필수 파라미터입니다. 현재 OBP API는 "KJB" (광주은행)만 허용합니다.
### Q2: providerCode 대소문자를 혼합해도 되나요?
@@ -534,18 +501,26 @@ curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslic
### Q8: API 응답 시간은 어느 정도인가요?
**A**: 응답 헤더에 `elapsed` 정보가 포함됩니다. 로그에서도 확인할 수 있습니다.
**A**: 응답 로그에 `elapsed` 정보가 포함됩니다. 로그에서도 확인할 수 있습니다.
### Q9: providerCode를 생략할 수 있나요?
**A**: 아니요, providerCode는 필수 파라미터입니다. 반드시 URL 경로에 포함되어야 합니다.
---
## 최신 변경사항
### v2.0 (2025-01-18)
### v2.0 (2025-01-19)
- **새로운 `/api/*` 경로**: 기존 `/kjb/*` 경로 대신 새로운 경로 제공
- **providerCode 검증**: 모든 엔드포인트에 providerCode 파라미터 추가
- **timeslice 형식 변경**: `yyyy-MM-dd_HH:mm:ss` → `yyyyMMddHHmmss`
- **레거시 엔드포인트 Deprecated**: 기존 `/kjb/*` 엔드포인트는 계속 지원되지만 향후 제거 예정
- **새로운 `/api/*` 경로**: RESTful 규칙 준수
- `/api/apis/{providerCode}` - 전체 API 목록
- `/api/apis/{orgCode}/{providerCode}` - 기관별 API 목록
- `/api/metrics/afterTimeslice/{timeslice}/{providerCode}` - GwMetric 데이터
- **Path 변수 기반**: 모든 providerCode/timeslice를 경로 변수로 변경
- **providerCode 검증**: 모든 엔드포인트에서 필수 검증 (KJB 대소문자 무시)
- **timeslice 형식**: `yyyy-MM-dd_HH:mm:ss` → `yyyyMMddHHmmss`
- **레거시 엔드포인트 유지**: `/kjb/*` 경로는 당분간 지원 (Deprecated)
**마이그레이션 권장**: 가능한 한 빨리 새로운 경로로 업데이트하세요.
@@ -561,5 +536,5 @@ curl "http://localhost:8080/monitoring/api/metrics/after-timeslice.json?timeslic
---
**마지막 업데이트**: 2025-01-18
**마지막 업데이트**: 2025-01-19
**API 버전**: 2.0
@@ -34,53 +34,17 @@ public class ObpApiController extends BaseRestController {
/**
* OBP API 전체 목록 조회 (v2)
*
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array
*/
@RequestMapping(value = "/api/apis.json", produces = JSON_CONTENT_TYPE)
@ResponseBody
public String getApisV2(@RequestParam(value = "pretty", required = false) Boolean pretty) {
log.debug("OBP API 목록 조회 요청 (v2): pretty={}", pretty);
long startTime = System.currentTimeMillis();
DataSourceContextHolder.setDataSourceType(
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
try {
List<ObpApiDTO> apis = obpApiService.findAllApis();
String json = toJson(apis, pretty);
long elapsed = System.currentTimeMillis() - startTime;
log.info("OBP API 목록 조회 완료 (v2): count={}, size={}, elapsed={}ms",
apis.size(), getFormattedJsonSize(json), elapsed);
return json;
} catch (Exception e) {
log.error("OBP API 목록 조회 실패 (v2)", e);
throw e;
}
}
/**
* OBP API 목록 조회 (providerCode 검증)
*
* @param providerCode Provider 코드 (KJB만 허용, 대소문자 무시)
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array
*/
@RequestMapping(
value = "/api/apis.json",
params = "providerCode",
produces = JSON_CONTENT_TYPE
)
@RequestMapping(value = "/api/apis/{providerCode}", produces = JSON_CONTENT_TYPE)
@ResponseBody
public String getApisByProvider(
@RequestParam("providerCode") String providerCode,
public String getApisV2(
@PathVariable("providerCode") String providerCode,
@RequestParam(value = "pretty", required = false) Boolean pretty) {
log.debug("OBP API 목록 조회 요청 (provider): providerCode={}, pretty={}", providerCode, pretty);
log.debug("OBP API 목록 조회 요청 (v2): providerCode={}, pretty={}", providerCode, pretty);
long startTime = System.currentTimeMillis();
// 1. providerCode 검증
@@ -96,13 +60,13 @@ public class ObpApiController extends BaseRestController {
String json = toJson(apis, pretty);
long elapsed = System.currentTimeMillis() - startTime;
log.info("OBP API 목록 조회 완료 (provider): providerCode={}, count={}, size={}, elapsed={}ms",
log.info("OBP API 목록 조회 완료 (v2): providerCode={}, count={}, size={}, elapsed={}ms",
providerCode, apis.size(), getFormattedJsonSize(json), elapsed);
return json;
} catch (Exception e) {
log.error("OBP API 목록 조회 실패 (provider): providerCode={}", providerCode, e);
log.error("OBP API 목록 조회 실패 (v2): providerCode={}", providerCode, e);
throw e;
}
}
@@ -110,24 +74,23 @@ public class ObpApiController extends BaseRestController {
/**
* OBP API 목록 조회 (기관별, v2)
*
* @param orgCode 기관코드 (OBP 파트너코드)
* @param providerCode Provider 코드 (KJB만 허용, 대소문자 무시)
* @param partnerCode 기관코드 (OBP 파트너코드)
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array (기관 미존재 시 빈 배열)
*/
@RequestMapping(
value = "/api/apis.json",
params = {"providerCode", "partnerCode"},
value = "/api/apis/{orgCode}/{providerCode}",
produces = JSON_CONTENT_TYPE
)
@ResponseBody
public String getApisByProviderAndPartner(
@RequestParam("providerCode") String providerCode,
@RequestParam("partnerCode") String partnerCode,
public String getApisByOrgCodeAndProvider(
@PathVariable("orgCode") String orgCode,
@PathVariable("providerCode") String providerCode,
@RequestParam(value = "pretty", required = false) Boolean pretty) {
log.debug("OBP API 목록 조회 요청 (provider+partner): providerCode={}, partnerCode={}, pretty={}",
providerCode, partnerCode, pretty);
log.debug("OBP API 목록 조회 요청 (기관별): orgCode={}, providerCode={}, pretty={}",
orgCode, providerCode, pretty);
long startTime = System.currentTimeMillis();
// 1. providerCode 검증
@@ -139,19 +102,19 @@ public class ObpApiController extends BaseRestController {
try {
// 3. 기관별 API 조회
List<ObpApiDTO> apis = obpApiService.findApisByOrgCode(partnerCode);
List<ObpApiDTO> apis = obpApiService.findApisByOrgCode(orgCode);
String json = toJson(apis, pretty);
long elapsed = System.currentTimeMillis() - startTime;
log.info("OBP API 목록 조회 완료 (provider+partner): providerCode={}, partnerCode={}, count={}, size={}, elapsed={}ms",
providerCode, partnerCode, apis.size(), getFormattedJsonSize(json), elapsed);
log.info("OBP API 목록 조회 완료 (기관별): orgCode={}, providerCode={}, count={}, size={}, elapsed={}ms",
orgCode, providerCode, apis.size(), getFormattedJsonSize(json), elapsed);
return json;
} catch (Exception e) {
log.error("OBP API 목록 조회 실패 (provider+partner): providerCode={}, partnerCode={}",
providerCode, partnerCode, e);
log.error("OBP API 목록 조회 실패 (기관별): orgCode={}, providerCode={}",
orgCode, providerCode, e);
throw e;
}
}
@@ -161,7 +124,7 @@ public class ObpApiController extends BaseRestController {
*
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array
* @deprecated Use {@link #getApisV2(Boolean)} or {@link #getApisByProvider(String, Boolean)} instead.
* @deprecated Use {@link #getApisV2(String, Boolean)} instead.
* Will be removed in next major version.
*/
@Deprecated
@@ -206,8 +169,8 @@ public class ObpApiController extends BaseRestController {
* @param orgCode 기관코드 (OBP 파트너코드)
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array (기관 미존재 시 빈 배열)
* @deprecated Use {@link #getApisByProviderAndPartner(String, String, Boolean)} instead.
* Migrate to /api/apis.json?providerCode=KJB&partnerCode={orgCode}
* @deprecated Use {@link #getApisByOrgCodeAndProvider(String, String, Boolean)} instead.
* Migrate to /api/apis/{orgCode}/{providerCode}
* Will be removed in next major version.
*/
@Deprecated
@@ -32,7 +32,7 @@ public class ObpGwMetricController extends BaseRestController {
DateTimeFormatter.ofPattern("yyyy-MM-dd_HH:mm:ss");
private static final DateTimeFormatter QUERY_PARAM_FORMATTER =
DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
private final ObpGwMetricManService obpGwMetricManService;
@@ -49,13 +49,13 @@ public class ObpGwMetricController extends BaseRestController {
* @return JSON Array (해당 시간대 이후의 모든 지표)
*/
@RequestMapping(
value = "/api/metrics/after-timeslice.json",
value = "/api/metrics/afterTimeslice/{timeslice}/{providerCode}",
produces = JSON_CONTENT_TYPE
)
@ResponseBody
public String getGwMetricsAfterTimesliceV2(
@RequestParam("timeslice") String timeslice,
@RequestParam("providerCode") String providerCode,
@PathVariable("timeslice") String timeslice,
@PathVariable("providerCode") String providerCode,
@RequestParam(value = "pretty", required = false) Boolean pretty) {
log.debug("GwMetric after-timeslice 조회 요청 (v2): timeslice={}, providerCode={}, pretty={}",
@@ -109,10 +109,7 @@ public class ObpGwMetricController extends BaseRestController {
* @param datetime 조회 시간대 (형식: yyyy-MM-dd_HH:mm:ss)
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array
* @deprecated Use {@link #getGwMetricsAfterTimesliceV2(String, String, Boolean)} instead.
* Will be removed in next major version.
*/
@Deprecated
@RequestMapping(
value = "/kjb/gw-metrics/{datetime}.json",
produces = JSON_CONTENT_TYPE
@@ -154,7 +151,7 @@ public class ObpGwMetricController extends BaseRestController {
* @param pretty true면 JSON 들여쓰기 적용
* @return JSON Array (해당 시간대 이후의 모든 지표)
* @deprecated Use {@link #getGwMetricsAfterTimesliceV2(String, String, Boolean)} instead.
* Migrate to /api/metrics/after-timeslice.json?timeslice={yyyyMMddHHmmss}&providerCode=KJB
* Migrate to /api/metrics/afterTimeslice/{timeslice}/{providerCode}
* Will be removed in next major version.
*/
@Deprecated