OBP API 목록조회 API 구조 변경
This commit is contained in:
@@ -12,10 +12,15 @@ import lombok.Getter;
|
|||||||
@Builder
|
@Builder
|
||||||
public class ObpApiDTO {
|
public class ObpApiDTO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 고정 ID (항상 0)
|
||||||
|
*/
|
||||||
|
private final int id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API ID (TSEAIHE01.EAISVCNAME)
|
* API ID (TSEAIHE01.EAISVCNAME)
|
||||||
*/
|
*/
|
||||||
private final String id;
|
private final String apiId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API 이름 (TSEAIHE01.EAISVCDESC)
|
* API 이름 (TSEAIHE01.EAISVCDESC)
|
||||||
@@ -28,9 +33,9 @@ public class ObpApiDTO {
|
|||||||
private final boolean enabled;
|
private final boolean enabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API URL (TSEAIHS04.APIFULLPATH에서 '|' 이후 부분)
|
* API URL 패턴 (TSEAIHS04.APIFULLPATH에서 '|' 이후 부분)
|
||||||
*/
|
*/
|
||||||
private final String url;
|
private final String urlPattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTP Method (TSEAIHS04.APIFULLPATH에서 '|' 이전 부분)
|
* HTTP Method (TSEAIHS04.APIFULLPATH에서 '|' 이전 부분)
|
||||||
@@ -38,7 +43,51 @@ public class ObpApiDTO {
|
|||||||
private final String method;
|
private final String method;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 인증 타입 (TSEAIHE01.AUTHTYPE)
|
* 요구되는 인증 정보
|
||||||
*/
|
*/
|
||||||
private final String authType;
|
private final RequiredAuthentication requiredAuthentication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 상태 정보
|
||||||
|
*/
|
||||||
|
private final Status status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요구되는 인증 정보 DTO
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
public static class RequiredAuthentication {
|
||||||
|
/**
|
||||||
|
* 인증 타입 코드 (API_KEY, OAUTH2, NONE)
|
||||||
|
*/
|
||||||
|
private final String key;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증 타입 표시명
|
||||||
|
*/
|
||||||
|
private final String name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API 상태 정보 DTO
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
public static class Status {
|
||||||
|
/**
|
||||||
|
* 상태 코드 (RUNNING, SUSPEND)
|
||||||
|
*/
|
||||||
|
private final String key;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 상태 표시명
|
||||||
|
*/
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 배포 여부 (enabled와 동일)
|
||||||
|
*/
|
||||||
|
private final boolean deployed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,16 +95,71 @@ public class ObpApiService {
|
|||||||
// USEYN이 "1"이면 enabled = true
|
// USEYN이 "1"이면 enabled = true
|
||||||
boolean enabled = "1".equals(useyn);
|
boolean enabled = "1".equals(useyn);
|
||||||
|
|
||||||
|
// RequiredAuthentication 매핑
|
||||||
|
ObpApiDTO.RequiredAuthentication reqAuth = mapAuthType(authtype);
|
||||||
|
|
||||||
|
// Status 매핑
|
||||||
|
ObpApiDTO.Status status = mapStatus(enabled);
|
||||||
|
|
||||||
return ObpApiDTO.builder()
|
return ObpApiDTO.builder()
|
||||||
.id(eaisvcname)
|
.id(0)
|
||||||
|
.apiId(eaisvcname)
|
||||||
.name(eaisvcdesc)
|
.name(eaisvcdesc)
|
||||||
.enabled(enabled)
|
.enabled(enabled)
|
||||||
.url(url)
|
.urlPattern(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.authType(authtype)
|
.requiredAuthentication(reqAuth)
|
||||||
|
.status(status)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증 타입을 RequiredAuthentication으로 매핑
|
||||||
|
*
|
||||||
|
* @param authtype TSEAIHE01.AUTHTYPE 값
|
||||||
|
* @return RequiredAuthentication 객체
|
||||||
|
*/
|
||||||
|
private ObpApiDTO.RequiredAuthentication mapAuthType(String authtype) {
|
||||||
|
if ("api_key".equalsIgnoreCase(authtype)) {
|
||||||
|
return ObpApiDTO.RequiredAuthentication.builder()
|
||||||
|
.key("API_KEY")
|
||||||
|
.name("APP키를 이용한 인증")
|
||||||
|
.build();
|
||||||
|
} else if ("oauth".equalsIgnoreCase(authtype) || "ca".equalsIgnoreCase(authtype)) {
|
||||||
|
return ObpApiDTO.RequiredAuthentication.builder()
|
||||||
|
.key("OAUTH2")
|
||||||
|
.name("OAuth Ver.2 인증")
|
||||||
|
.build();
|
||||||
|
} else {
|
||||||
|
return ObpApiDTO.RequiredAuthentication.builder()
|
||||||
|
.key("NONE")
|
||||||
|
.name("인증없이 사용")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enabled 값을 Status로 매핑
|
||||||
|
*
|
||||||
|
* @param enabled 활성화 여부
|
||||||
|
* @return Status 객체
|
||||||
|
*/
|
||||||
|
private ObpApiDTO.Status mapStatus(boolean enabled) {
|
||||||
|
if (enabled) {
|
||||||
|
return ObpApiDTO.Status.builder()
|
||||||
|
.key("RUNNING")
|
||||||
|
.name("서비스 중")
|
||||||
|
.deployed(true)
|
||||||
|
.build();
|
||||||
|
} else {
|
||||||
|
return ObpApiDTO.Status.builder()
|
||||||
|
.key("SUSPEND")
|
||||||
|
.name("서비스 일시 중지")
|
||||||
|
.deployed(false)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 기관코드에 해당하는 법인이 이용하는 API 목록 조회
|
* 기관코드에 해당하는 법인이 이용하는 API 목록 조회
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user