API 스펙 관리 문구 및 로직 개선
eapim-admin CI / build (push) Has been cancelled

- 게이트웨이 관련 문구 수정 및 그룹 설정 안내 추가
- 비 로그인 사용자 공개 관련 문구 수정
- description 필드 저장/복원 로직 추가
This commit is contained in:
Rinjae
2026-07-30 11:23:38 +09:00
parent e59f64653f
commit 90ba584e4b
+5 -2
View File
@@ -381,7 +381,7 @@
`<div class="flex items-center gap-3 mb-4 p-3 bg-slate-50 border border-slate-200 rounded">
<span class="px-2.5 py-1 text-xs font-bold rounded border ${methodColor}">${escapeHtml(op.method.value)}</span>
<code class="text-sm font-mono text-slate-800">${escapeHtml(op.path.value)}</code>
<span class="text-xs text-slate-400 ml-auto">🔒 게이트웨이에서 자동 동기화</span>
<span class="text-xs text-slate-400 ml-auto">🔒 게이트웨이 설정</span>
</div>` +
fieldRow('Operation ID', lockedInput((window.DJB_CTX && window.DJB_CTX.eaiSvcName) || op.operationId.value), { locked: true }) +
fieldRow('API 타이틀', input(i.title.value, 'data-path="info.title.value"', { required: true }), { required: true }) +
@@ -1031,6 +1031,7 @@
<span id="group-chips">${groupChips || '<span class="text-xs text-slate-400">선택된 그룹 없음</span>'}</span>
<button type="button" id="btn-select-group" class="px-2 py-1 text-sm rounded border border-slate-300 hover:bg-slate-50">+ 선택</button>
</div>
<div class="text-xs text-slate-400">API 그룹을 설정하지 않으면 포탈에 게시되지 않습니다.</div>
<div class="text-xs text-slate-400">API 그룹은 apiGroupMan(API 그룹 관리)에서도 관리됩니다.</div>
</div>`, { bordered: true }) +
fieldRow('포탈 게시 활성화', `<label class="inline-flex items-center gap-2 text-sm">${checkbox(p.displayYn === 'Y', 'data-portal-yn')} 활성화</label>`, { bordered: true }) +
@@ -1041,7 +1042,7 @@
<label class="inline-flex items-center gap-1 text-sm">${checkbox(!!roles.ROLE_CORP_USER, 'data-role="ROLE_CORP_USER"')} 법인사용자</label>
<label class="inline-flex items-center gap-1 text-sm">${checkbox(!!roles.ROLE_CORP_MANAGER, 'data-role="ROLE_CORP_MANAGER"')} 법인관리자</label>
</div>
<div class="text-xs text-slate-400">전부 선택 시 로그인 사용자 전체에게 공개니다.</div>
<div class="text-xs text-slate-400">선택시 로그인 사용자에게 공개 되지 않습니다.</div>
</div>`, { bordered: true }) +
(showOrg ? fieldRow('공개 법인',
`<div class="flex flex-col gap-1">
@@ -2005,6 +2006,8 @@
if (res.responseType) pp.responseType = res.responseType;
if (res.mockUrl) pp.mockUrl = decodeEntities(res.mockUrl);
if (res.apiGroups) { try { pp.apiGroups = JSON.parse(res.apiGroups) || []; } catch (e) { pp.apiGroups = []; } }
// 설명(API 소개 페이지) — spec 에 미포함, description 컬럼에 별도 저장 → 별도 필드로 복원
if (res.description) state.data.info.description = wrap(decodeEntities(res.description));
// 요청/응답 메시지 스펙(HTML) — 저장본은 저장값, 자동생성분은 프론트에서 생성
state.data.msgSpec = state.data.msgSpec || { request: '', response: '' };
if (res.apiRequestSpec) state.data.msgSpec.request = decodeEntities(res.apiRequestSpec);