OBP API 주소 변경
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user