API Spec 자동 생성 기능 및 개발자포탈 반영 로직 추가

- DjbApiSpecAutoGenService 신규 추가 및 관련 규칙 구현
- PortalCredentialSyncService 도입으로 포탈 인증정보 동기화 로직 개선
- ClientManService 및 UI 업데이트: Spec 자동 생성 상태 반영
This commit is contained in:
Rinjae
2026-09-04 13:22:07 +09:00
parent 778197c1dd
commit cad51df3cb
8 changed files with 506 additions and 407 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
UserManController_사용자관리_APIGW_INSERT,UPDATE,DELETE
AdapterController_어댑터관리_APIGW_INSERT,UPDATE,DELETE
ApiInterfaceController_API관리_APIGW_INSERT,UPDATE,DELETE,CLONE
ClientController_Client (키정보)관리_APIGW_INSERT,UPDATE,DELETE
ClientController_Client (키정보)관리_APIGW_INSERT,UPDATE,DELETE,SYNC_PORTAL
RoleController_Role (역할)관리_APIGW_INSERT,UPDATE,DELETE
MenuController_Menu관리_APIGW_INSERT,UPDATE,DELETE
PortalApprovalLineManController_승인라인관리_APIGW_INSERT,UPDATE,DELETE
@@ -308,7 +308,8 @@
dataType: "json",
data: {
cmd: 'SYNC_PORTAL',
clientId: clientId
clientId: clientId,
serviceType: 'APIGW'
},
success: function(response) {
showSyncResultModal(response);
@@ -453,8 +454,8 @@
</div><!-- end content_top -->
<div class="content_middle">
<div class="search_wrap">
<!-- <button type="button" class="cssbtn" id="btn_sync_portal" level="W" status="DETAIL"><i class="material-icons">sync</i> 개발자포탈 정보 반영
</button> -->
<button type="button" class="cssbtn" id="btn_sync_portal" level="W" status="DETAIL"><i class="material-icons">sync</i> 개발자포탈 정보 반영
</button>
<button type="button" class="cssbtn" id="btn_delete" level="W" status="DETAIL"><i class="material-icons">delete</i> <%= localeMessage.getString("button.delete") %>
</button>
<button type="button" class="cssbtn" id="btn_modify" level="W" status="DETAIL,NEW"><i
@@ -741,7 +742,7 @@ function showSyncResultModal(response) {
if (response.success) {
statusClass = "status-success";
var createdCount = response.createdApiSpecCount || 0;
var createdMsg = createdCount > 0 ? "<br/><span style='color:#007bff;'>* " + createdCount + "개의 API Spec 자동 생성되었습니다.</span>" : "";
var createdMsg = createdCount > 0 ? "<br/><span style='color:#007bff;'>* " + createdCount + "개의 API Spec을 비공개(N)로 자동 생성습니다. API Spec 관리에서 확인 후 공개하세요.</span>" : "";
if (response.action === 'INSERTED') {
statusMsg = "<strong>반영 완료</strong> - 포탈에 새로운 인증정보가 생성되었습니다." + createdMsg;
@@ -771,6 +772,7 @@ function showSyncResultModal(response) {
var syncedApis = response.syncedApis || [];
var invalidApis = response.invalidApis || [];
var createdApiSpecs = response.createdApiSpecs || [];
var specGenFailed = response.specGenFailed || [];
$targetCount.text(targetApis.length);
@@ -784,8 +786,11 @@ function showSyncResultModal(response) {
if (invalidApis.includes(apiId)) {
status = "미존재 (APIGW에 없음)";
statusClass = "api-invalid";
} else if (specGenFailed.includes(apiId)) {
status = "반영됨 (Spec 자동생성 실패·빈 항목)";
statusClass = "api-created";
} else if (createdApiSpecs.includes(apiId)) {
status = "반영됨 (Spec 신규생성)";
status = "반영됨 (Spec 자동생성·비공개)";
statusClass = "api-created";
} else if (syncedApis.includes(apiId)) {
status = "반영됨";